43 Commits

Author SHA1 Message Date
9678659892 Release v1.3.0 2025-12-27 10:05:50 -03:00
87334bb28c Update Directory.Build.props 2025-12-22 09:59:50 -03:00
d26c3bd11a Add support to dotnet standard and framework 2025-12-22 09:51:08 -03:00
e3c42a9911 Update README.md 2025-12-16 19:23:47 -03:00
93301110b7 Update projects 2025-12-16 15:58:29 -03:00
44dc36430a Move flake generator to platform project 2025-12-11 10:16:30 -03:00
765b6319bb Add snowflake generator 2025-12-11 10:14:38 -03:00
1c570ce666 Delete DatabaseSeeder.cs 2025-12-05 11:30:50 -03:00
6238191512 Update database seeder 2025-12-05 10:34:11 -03:00
b6c7166b8e Add repository seeder 2025-12-05 10:17:08 -03:00
92a7bb3252 Update DatabaseConfiguration.cs 2025-12-04 18:31:35 -03:00
32a2a20fb1 Update BaseClassFirstContractResolver.cs 2025-07-08 20:29:51 -03:00
3edec858a8 Update BaseClassFirstContractResolver.cs 2025-07-08 20:26:06 -03:00
936f7f0f5e Update ConfigurationLoader.cs 2025-07-08 20:24:18 -03:00
0a88bf2ac6 Update CustomSerializerSettings.cs 2025-07-07 11:55:42 -03:00
817d89a57a Update CustomSerializerSettings.cs 2025-07-07 11:35:57 -03:00
2b6270264b Update Program.cs 2025-07-07 11:34:37 -03:00
e8d842bf34 Update CustomSerializerSettings 2025-07-07 11:34:36 -03:00
672fe601f7 Add json serialization configs 2025-07-07 11:06:41 -03:00
eda5b1894b Add logger with context object 2025-06-10 11:53:30 -03:00
e4986367e7 Disable ImplicitUsings 2025-06-04 16:55:16 -03:00
58f300e39b Update Program.cs 2025-06-04 07:45:04 -03:00
479f719816 Update Logger.cs 2025-06-03 20:03:23 -03:00
eb9e939fc8 Update log levels 2025-06-03 20:01:16 -03:00
c8bb2d95b5 Update TribufuApi.cs 2025-06-03 19:37:55 -03:00
e63812204d Rename Tribufu.Runtime to Tribufu.Platform 2025-06-02 10:06:03 -03:00
4b694a4031 Update Tribufu.Runtime.csproj 2025-06-02 09:24:13 -03:00
5fdd52265b Revert "Remove net standard support"
This reverts commit f45e827ba4.
2025-06-02 09:23:54 -03:00
f45e827ba4 Remove net standard support 2025-06-02 09:19:21 -03:00
ffc4079881 Update Tribufu.Runtime.csproj 2025-06-02 09:15:38 -03:00
374a634949 Add IsPublishable to all projects 2025-06-02 09:15:00 -03:00
13c5d6a71c Rename ConfigurationLoader 2025-06-02 09:06:21 -03:00
f6c296d9b6 Update READMEs 2025-06-02 09:00:15 -03:00
5b2588b47f Add shared packages 2025-06-02 08:58:34 -03:00
6ebfde013a Update TribufuApi.cs 2025-06-01 21:45:51 -03:00
9ff743097b Update TribufuApi.cs 2025-05-27 18:55:32 -03:00
42e14fc07b Update README.md 2025-05-27 08:39:35 -03:00
ed2dfa2b8f Update README.md 2025-05-27 08:39:00 -03:00
1815ca6bcd Update README.md 2025-05-27 08:35:17 -03:00
8994fc13d6 Update Directory.Build.props 2025-05-27 08:35:16 -03:00
549e7bcbe3 Update projects deps 2025-05-26 21:43:58 -03:00
aede8c7ac2 Update README.md 2025-05-26 21:41:40 -03:00
d791408793 Generate client with open-api-generator (#1)
* Generate project with open-api-generator

* Add example project

* Create wrapper class
2025-05-26 21:40:46 -03:00
122 changed files with 24608 additions and 16589 deletions

2
.gitignore vendored
View File

@@ -1,7 +1,9 @@
.vs/ .vs/
bin/ bin/
obj/ obj/
releases/*
!releases/.gitkeep
.DS_Store .DS_Store
.env .env
*.filters *.filters

View File

@@ -1,60 +1,67 @@
src/Tribufu.Generated/Api/TribufuGeneratedApi.cs src/Tribufu/Api/TribufuGeneratedApi.cs
src/Tribufu.Generated/Client/ApiClient.cs src/Tribufu/Client/ApiClient.cs
src/Tribufu.Generated/Client/ApiException.cs src/Tribufu/Client/ApiException.cs
src/Tribufu.Generated/Client/ApiResponse.cs src/Tribufu/Client/ApiResponse.cs
src/Tribufu.Generated/Client/ClientUtils.cs src/Tribufu/Client/ClientUtils.cs
src/Tribufu.Generated/Client/Configuration.cs src/Tribufu/Client/Configuration.cs
src/Tribufu.Generated/Client/ExceptionFactory.cs src/Tribufu/Client/ExceptionFactory.cs
src/Tribufu.Generated/Client/GlobalConfiguration.cs src/Tribufu/Client/GlobalConfiguration.cs
src/Tribufu.Generated/Client/HttpMethod.cs src/Tribufu/Client/HttpMethod.cs
src/Tribufu.Generated/Client/IApiAccessor.cs src/Tribufu/Client/IApiAccessor.cs
src/Tribufu.Generated/Client/IAsynchronousClient.cs src/Tribufu/Client/IAsynchronousClient.cs
src/Tribufu.Generated/Client/IReadableConfiguration.cs src/Tribufu/Client/IReadableConfiguration.cs
src/Tribufu.Generated/Client/ISynchronousClient.cs src/Tribufu/Client/ISynchronousClient.cs
src/Tribufu.Generated/Client/Multimap.cs src/Tribufu/Client/Multimap.cs
src/Tribufu.Generated/Client/OpenAPIDateConverter.cs src/Tribufu/Client/OpenAPIDateConverter.cs
src/Tribufu.Generated/Client/RequestOptions.cs src/Tribufu/Client/RequestOptions.cs
src/Tribufu.Generated/Client/RetryConfiguration.cs src/Tribufu/Client/RetryConfiguration.cs
src/Tribufu.Generated/Model/AbstractOpenAPISchema.cs src/Tribufu/Model/AbstractOpenAPISchema.cs
src/Tribufu.Generated/Model/Account.cs src/Tribufu/Model/Account.cs
src/Tribufu.Generated/Model/Application.cs src/Tribufu/Model/Application.cs
src/Tribufu.Generated/Model/ApplicationType.cs src/Tribufu/Model/ApplicationType.cs
src/Tribufu.Generated/Model/AuthorizeRequest.cs src/Tribufu/Model/AuthorizeRequest.cs
src/Tribufu.Generated/Model/CodeChallengeMethod.cs src/Tribufu/Model/ClientInfo.cs
src/Tribufu.Generated/Model/CryptoViewModel.cs src/Tribufu/Model/ClientType.cs
src/Tribufu.Generated/Model/Game.cs src/Tribufu/Model/CodeChallengeMethod.cs
src/Tribufu.Generated/Model/GameServer.cs src/Tribufu/Model/CodeResponse.cs
src/Tribufu.Generated/Model/GameServerCluster.cs src/Tribufu/Model/CreateUser.cs
src/Tribufu.Generated/Model/GrantType.cs src/Tribufu/Model/CryptoViewModel.cs
src/Tribufu.Generated/Model/Group.cs src/Tribufu/Model/Game.cs
src/Tribufu.Generated/Model/GroupGame.cs src/Tribufu/Model/GameServer.cs
src/Tribufu.Generated/Model/GroupMember.cs src/Tribufu/Model/GameServerCluster.cs
src/Tribufu.Generated/Model/GroupRank.cs src/Tribufu/Model/GameServerQuery.cs
src/Tribufu.Generated/Model/HashViewModel.cs src/Tribufu/Model/GameServerStatus.cs
src/Tribufu.Generated/Model/IntrospectRequest.cs src/Tribufu/Model/GrantType.cs
src/Tribufu.Generated/Model/IpAddress.cs src/Tribufu/Model/Group.cs
src/Tribufu.Generated/Model/LeaderboardItem.cs src/Tribufu/Model/GroupApplication.cs
src/Tribufu.Generated/Model/LeaderboardOrder.cs src/Tribufu/Model/GroupMember.cs
src/Tribufu.Generated/Model/LoginProvider.cs src/Tribufu/Model/GroupRank.cs
src/Tribufu.Generated/Model/LoginRequest.cs src/Tribufu/Model/HashViewModel.cs
src/Tribufu.Generated/Model/LoginResponse.cs src/Tribufu/Model/IntrospectRequest.cs
src/Tribufu.Generated/Model/Package.cs src/Tribufu/Model/IntrospectResponse.cs
src/Tribufu.Generated/Model/Profile.cs src/Tribufu/Model/IpAddress.cs
src/Tribufu.Generated/Model/ProfileGame.cs src/Tribufu/Model/LeaderboardItem.cs
src/Tribufu.Generated/Model/ProfileGroup.cs src/Tribufu/Model/LeaderboardOrder.cs
src/Tribufu.Generated/Model/RefreshRequest.cs src/Tribufu/Model/LoginProvider.cs
src/Tribufu.Generated/Model/RegisterRequest.cs src/Tribufu/Model/ModelClient.cs
src/Tribufu.Generated/Model/ResponseType.cs src/Tribufu/Model/Package.cs
src/Tribufu.Generated/Model/RevokeRequest.cs src/Tribufu/Model/PackageRelease.cs
src/Tribufu.Generated/Model/SearchRequest.cs src/Tribufu/Model/Product.cs
src/Tribufu.Generated/Model/SearchType.cs src/Tribufu/Model/ProductPrice.cs
src/Tribufu.Generated/Model/ServerMetrics.cs src/Tribufu/Model/ProductType.cs
src/Tribufu.Generated/Model/ServerStatus.cs src/Tribufu/Model/Profile.cs
src/Tribufu.Generated/Model/Subscription.cs src/Tribufu/Model/ProfileGame.cs
src/Tribufu.Generated/Model/TokenHintType.cs src/Tribufu/Model/ProfileGroup.cs
src/Tribufu.Generated/Model/TokenRequest.cs src/Tribufu/Model/ResponseType.cs
src/Tribufu.Generated/Model/TokenResponse.cs src/Tribufu/Model/RevokeRequest.cs
src/Tribufu.Generated/Model/TokenType.cs src/Tribufu/Model/Search.cs
src/Tribufu.Generated/Model/UpdateProfile.cs src/Tribufu/Model/SearchType.cs
src/Tribufu.Generated/Model/UserInfo.cs src/Tribufu/Model/ServerMetrics.cs
src/Tribufu.Generated/Model/UserType.cs src/Tribufu/Model/StorageFile.cs
src/Tribufu/Model/TokenHintType.cs
src/Tribufu/Model/TokenRequest.cs
src/Tribufu/Model/TokenResponse.cs
src/Tribufu/Model/TokenType.cs
src/Tribufu/Model/UpdateProfile.cs
src/Tribufu/Model/UserInfo.cs
src/Tribufu/Model/UserType.cs

View File

@@ -5,8 +5,8 @@
<Copyright>Copyright (c) Tribufu. All Rights Reserved.</Copyright> <Copyright>Copyright (c) Tribufu. All Rights Reserved.</Copyright>
<PackageLicenseExpression>MIT</PackageLicenseExpression> <PackageLicenseExpression>MIT</PackageLicenseExpression>
<RepositoryType>git</RepositoryType> <RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/tribufu/sdk-dotnet</RepositoryUrl> <RepositoryUrl>https://github.com/tribufu/tribufu-dotnet</RepositoryUrl>
<Version>1.1.0</Version> <Version>1.3.0</Version>
<AssemblyVersion>$(Version).0</AssemblyVersion> <AssemblyVersion>$(Version).0</AssemblyVersion>
<NoWarn>$(NoWarn);0618;1591;1998;2002;8767</NoWarn> <NoWarn>$(NoWarn);0618;1591;1998;2002;8767</NoWarn>
</PropertyGroup> </PropertyGroup>

View File

@@ -3,11 +3,22 @@
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally> <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageVersion Include="CppAst.CodeGen" Version="0.4.1" />
<PackageVersion Include="dotenv.net" Version="3.2.0" /> <PackageVersion Include="dotenv.net" Version="3.2.0" />
<PackageVersion Include="IdGen" Version="3.0.7" />
<PackageVersion Include="JsonSubTypes" Version="2.0.1" /> <PackageVersion Include="JsonSubTypes" Version="2.0.1" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="8.0.16" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Ini" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.1" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" /> <PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
<PackageVersion Include="Polly" Version="8.1.0" /> <PackageVersion Include="Polly" Version="8.1.0" />
<PackageVersion Include="RestSharp" Version="112.1.0" /> <PackageVersion Include="RestSharp" Version="112.1.0" />
<PackageVersion Include="System.ComponentModel.Annotations" Version="5.0.0" /> <PackageVersion Include="System.ComponentModel.Annotations" Version="5.0.0" />
<PackageVersion Include="Tomlyn.Extensions.Configuration" Version="1.0.6" />
<PackageVersion Include="Tomlyn" Version="0.17.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>

288
README.md
View File

@@ -1,279 +1,23 @@
# Tribufu - the C# library for the Tribufu API # Tribufu .NET
REST API to access Tribufu services. .NET SDK to access Tribufu APIs and services.
This C# SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: [![nuget][nuget-badge]][nuget-url]
[![MIT License][mit-badge]][mit-url]
[![Discord Chat][discord-badge]][discord-url]
- API version: 1.1.0 [nuget-badge]: https://img.shields.io/nuget/v/Tribufu.svg
- SDK version: 1.0.0 [nuget-url]: https://www.nuget.org/packages/Tribufu
- Generator version: 7.8.0 [mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg
- Build package: org.openapitools.codegen.languages.CSharpClientCodegen [mit-url]: https://github.com/tribufu/tribufu-dotnet/blob/main/LICENSE.txt
For more information, please visit [https://www.tribufu.com/contact](https://www.tribufu.com/contact) [discord-badge]: https://img.shields.io/discord/276504514616623104.svg?logo=discord&style=flat-square
[discord-url]: https://www.tribufu.com/discord
<a id="frameworks-supported"></a> [Website](https://www.tribufu.com) |
## Frameworks supported [Discord](https://www.tribufu.com/discord)
<a id="dependencies"></a> ## License
## Dependencies
- [Json.NET](https://www.nuget.org/packages/Newtonsoft.Json/) - 13.0.2 or later This project is licensed under the [MIT License].
- [JsonSubTypes](https://www.nuget.org/packages/JsonSubTypes/) - 1.8.0 or later
- [System.ComponentModel.Annotations](https://www.nuget.org/packages/System.ComponentModel.Annotations) - 5.0.0 or later
The DLLs included in the package may not be the latest version. We recommend using [NuGet](https://docs.nuget.org/consume/installing-nuget) to obtain the latest version of the packages:
```
Install-Package Newtonsoft.Json
Install-Package JsonSubTypes
Install-Package System.ComponentModel.Annotations
```
<a id="installation"></a>
## Installation
Run the following command to generate the DLL
- [Mac/Linux] `/bin/sh build.sh`
- [Windows] `build.bat`
Then include the DLL (under the `bin` folder) in the C# project, and use the namespaces:
```csharp
using Tribufu.Api;
using Tribufu.Client;
using Tribufu.Model;
```
<a id="packaging"></a>
## Packaging
A `.nuspec` is included with the project. You can follow the Nuget quickstart to [create](https://docs.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package#create-the-package) and [publish](https://docs.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package#publish-the-package) packages.
This `.nuspec` uses placeholders from the `.csproj`, so build the `.csproj` directly:
```
nuget pack -Build -OutputDirectory out Tribufu.csproj
```
Then, publish to a [local feed](https://docs.microsoft.com/en-us/nuget/hosting-packages/local-feeds) or [other host](https://docs.microsoft.com/en-us/nuget/hosting-packages/overview) and consume the new package via Nuget as usual.
<a id="usage"></a>
## Usage
To use the API client with a HTTP proxy, setup a `System.Net.WebProxy`
```csharp
Configuration c = new Configuration();
System.Net.WebProxy webProxy = new System.Net.WebProxy("http://myProxyUrl:80/");
webProxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
c.Proxy = webProxy;
```
### Connections
Each ApiClass (properly the ApiClient inside it) will create an instance of HttpClient. It will use that for the entire lifecycle and dispose it when called the Dispose method.
To better manager the connections it's a common practice to reuse the HttpClient and HttpClientHandler (see [here](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests#issues-with-the-original-httpclient-class-available-in-net) for details). To use your own HttpClient instance just pass it to the ApiClass constructor.
```csharp
HttpClientHandler yourHandler = new HttpClientHandler();
HttpClient yourHttpClient = new HttpClient(yourHandler);
var api = new YourApiClass(yourHttpClient, yourHandler);
```
If you want to use an HttpClient and don't have access to the handler, for example in a DI context in Asp.net Core when using IHttpClientFactory.
```csharp
HttpClient yourHttpClient = new HttpClient();
var api = new YourApiClass(yourHttpClient);
```
You'll loose some configuration settings, the features affected are: Setting and Retrieving Cookies, Client Certificates, Proxy settings. You need to either manually handle those in your setup of the HttpClient or they won't be available.
Here an example of DI setup in a sample web project:
```csharp
services.AddHttpClient<YourApiClass>(httpClient =>
new PetApi(httpClient));
```
<a id="getting-started"></a>
## Getting Started
```csharp
using System.Collections.Generic;
using System.Diagnostics;
using System.Net.Http;
using Tribufu.Api;
using Tribufu.Client;
using Tribufu.Model;
namespace Example
{
public class Example
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "http://localhost";
// Configure API key authorization: ApiKey
config.ApiKey.Add("Authorization", "YOUR_API_KEY");
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// config.ApiKeyPrefix.Add("Authorization", "Bearer");
// create instances of HttpClient, HttpClientHandler to be reused later with different Api classes
HttpClient httpClient = new HttpClient();
HttpClientHandler httpClientHandler = new HttpClientHandler();
var apiInstance = new TribufuApi(httpClient, config, httpClientHandler);
var authorizeRequest = new AuthorizeRequest?(); // AuthorizeRequest? | (optional)
try
{
// Authorize the client to access the user information.
apiInstance.Authorize(authorizeRequest);
}
catch (ApiException e)
{
Debug.Print("Exception when calling TribufuApi.Authorize: " + e.Message );
Debug.Print("Status Code: "+ e.ErrorCode);
Debug.Print(e.StackTrace);
}
}
}
}
```
<a id="documentation-for-api-endpoints"></a>
## Documentation for API Endpoints
All URIs are relative to *http://localhost*
Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*TribufuApi* | [**Authorize**](docs/TribufuApi.md#authorize) | **POST** /v1/oauth2/authorize | Authorize the client to access the user information.
*TribufuApi* | [**ChangeEmail**](docs/TribufuApi.md#changeemail) | **PUT** /v1/users/{id}/email | Change the email of a user.
*TribufuApi* | [**ChangePassword**](docs/TribufuApi.md#changepassword) | **PUT** /v1/users/{id}/password | Change the password of a user.
*TribufuApi* | [**ClaimGameServer**](docs/TribufuApi.md#claimgameserver) | **PUT** /v1/servers/{id}/claim | Claim a game server.
*TribufuApi* | [**ConvertBase64**](docs/TribufuApi.md#convertbase64) | **POST** /v1/utils/base64 | Convert a string to base64 or vice versa.
*TribufuApi* | [**CreateGameServer**](docs/TribufuApi.md#creategameserver) | **POST** /v1/servers | Create a new game server.
*TribufuApi* | [**CreateGameServerCluster**](docs/TribufuApi.md#creategameservercluster) | **POST** /v1/clusters | Create a new game server cluster.
*TribufuApi* | [**CreateGroup**](docs/TribufuApi.md#creategroup) | **POST** /v1/groups | Create a new group.
*TribufuApi* | [**CreateToken**](docs/TribufuApi.md#createtoken) | **POST** /v1/oauth2/token | Create a new token with grant type.
*TribufuApi* | [**DeleteGameServer**](docs/TribufuApi.md#deletegameserver) | **DELETE** /v1/servers/{id} | Delete a game server.
*TribufuApi* | [**DeleteGameServerCluster**](docs/TribufuApi.md#deletegameservercluster) | **DELETE** /v1/clusters/{id} | Delete a game server cluster.
*TribufuApi* | [**DeleteGroup**](docs/TribufuApi.md#deletegroup) | **DELETE** /v1/groups/{id} | Delete a group.
*TribufuApi* | [**GenerateFlakeId**](docs/TribufuApi.md#generateflakeid) | **GET** /v1/utils/flake | Generate one or more flake ids.
*TribufuApi* | [**GenerateFlakeIdFromTimestamp**](docs/TribufuApi.md#generateflakeidfromtimestamp) | **GET** /v1/utils/flake/{timestamp} | Generate one or more flake ids from a timestamp.
*TribufuApi* | [**GeneratePassword**](docs/TribufuApi.md#generatepassword) | **GET** /v1/utils/password | Generate a random password.
*TribufuApi* | [**GenerateUuid**](docs/TribufuApi.md#generateuuid) | **GET** /v1/utils/uuid | Generate one or more uuids with a specific version.
*TribufuApi* | [**GetClientInfo**](docs/TribufuApi.md#getclientinfo) | **GET** /v1/oauth2/clientinfo | Get current client information.
*TribufuApi* | [**GetCurrentIpAddress**](docs/TribufuApi.md#getcurrentipaddress) | **GET** /v1/geoip | Get current ip address location.
*TribufuApi* | [**GetGameById**](docs/TribufuApi.md#getgamebyid) | **GET** /v1/games/{id} | Get a game by id.
*TribufuApi* | [**GetGameClustersByGameId**](docs/TribufuApi.md#getgameclustersbygameid) | **GET** /v1/games/{id}/clusters | Get a list of game server clusters of a game.
*TribufuApi* | [**GetGameItems**](docs/TribufuApi.md#getgameitems) | **GET** /v1/games/{id}/items | Get a list of game items.
*TribufuApi* | [**GetGameServerByAddressAndQueryPort**](docs/TribufuApi.md#getgameserverbyaddressandqueryport) | **GET** /v1/servers/address/{address}:{port} | Get a game server by address and query port.
*TribufuApi* | [**GetGameServerById**](docs/TribufuApi.md#getgameserverbyid) | **GET** /v1/servers/{id} | Get a game server by id.
*TribufuApi* | [**GetGameServerClusterById**](docs/TribufuApi.md#getgameserverclusterbyid) | **GET** /v1/clusters/{id} | Get a game server cluster by id.
*TribufuApi* | [**GetGameServerClusters**](docs/TribufuApi.md#getgameserverclusters) | **GET** /v1/clusters | Get a list of game server clusters.
*TribufuApi* | [**GetGameServers**](docs/TribufuApi.md#getgameservers) | **GET** /v1/servers | Get a list of game servers.
*TribufuApi* | [**GetGameServersByCountry**](docs/TribufuApi.md#getgameserversbycountry) | **GET** /v1/servers/country/{country} | Get a list of game servers from a country.
*TribufuApi* | [**GetGameServersByGameId**](docs/TribufuApi.md#getgameserversbygameid) | **GET** /v1/games/{id}/servers | Get a list of game servers of a game.
*TribufuApi* | [**GetGameServersCountries**](docs/TribufuApi.md#getgameserverscountries) | **GET** /v1/servers/countries | Get a list of countries with the number of game servers.
*TribufuApi* | [**GetGameServersMetrics**](docs/TribufuApi.md#getgameserversmetrics) | **GET** /v1/servers/metrics | Get metrics about the tracked game servers.
*TribufuApi* | [**GetGames**](docs/TribufuApi.md#getgames) | **GET** /v1/games | Get a list of games.
*TribufuApi* | [**GetGroupById**](docs/TribufuApi.md#getgroupbyid) | **GET** /v1/groups/{id} | Get a group by id.
*TribufuApi* | [**GetGroupByTag**](docs/TribufuApi.md#getgroupbytag) | **GET** /v1/groups/tag/{tag} | Get a group by tag.
*TribufuApi* | [**GetGroupByUuid**](docs/TribufuApi.md#getgroupbyuuid) | **GET** /v1/groups/uuid/{uuid} | Get a group by uuid.
*TribufuApi* | [**GetGroupGames**](docs/TribufuApi.md#getgroupgames) | **GET** /v1/groups/{id}/games | Get a list of games of a group.
*TribufuApi* | [**GetGroupMembers**](docs/TribufuApi.md#getgroupmembers) | **GET** /v1/groups/{id}/members | Get a list of members in a group.
*TribufuApi* | [**GetGroups**](docs/TribufuApi.md#getgroups) | **GET** /v1/groups | Get a list of groups.
*TribufuApi* | [**GetIpAddress**](docs/TribufuApi.md#getipaddress) | **GET** /v1/geoip/addresses/{address} | Get a ip address location.
*TribufuApi* | [**GetIpAddresses**](docs/TribufuApi.md#getipaddresses) | **GET** /v1/geoip/addresses | Get a list of ip addresses.
*TribufuApi* | [**GetLeaderboard**](docs/TribufuApi.md#getleaderboard) | **GET** /v1/leaderboard | Get the top 20 leaderboard users.
*TribufuApi* | [**GetMe**](docs/TribufuApi.md#getme) | **GET** /v1/me | Get current user information.
*TribufuApi* | [**GetPackageById**](docs/TribufuApi.md#getpackagebyid) | **GET** /v1/packages/{id} | Get a package by id.
*TribufuApi* | [**GetPackages**](docs/TribufuApi.md#getpackages) | **GET** /v1/packages | Get a list of packages.
*TribufuApi* | [**GetPublicKeys**](docs/TribufuApi.md#getpublickeys) | **GET** /v1/oauth2/jwks | Get the public keys for the client.
*TribufuApi* | [**GetSubscriptionById**](docs/TribufuApi.md#getsubscriptionbyid) | **GET** /v1/subscriptions/{id} | Get a subscription by id.
*TribufuApi* | [**GetSubscriptions**](docs/TribufuApi.md#getsubscriptions) | **GET** /v1/subscriptions | Get a list of subscriptions.
*TribufuApi* | [**GetUserAccounts**](docs/TribufuApi.md#getuseraccounts) | **GET** /v1/users/{id}/accounts | Get a list of connected accounts of the user.
*TribufuApi* | [**GetUserById**](docs/TribufuApi.md#getuserbyid) | **GET** /v1/users/{id} | Get a user profile by id.
*TribufuApi* | [**GetUserByName**](docs/TribufuApi.md#getuserbyname) | **GET** /v1/users/name/{name} | Get a user profile by name.
*TribufuApi* | [**GetUserByUuid**](docs/TribufuApi.md#getuserbyuuid) | **GET** /v1/users/uuid/{uuid} | Get a user profile by uuid.
*TribufuApi* | [**GetUserFriends**](docs/TribufuApi.md#getuserfriends) | **GET** /v1/users/{id}/friends | Get a list of friends of the user.
*TribufuApi* | [**GetUserGames**](docs/TribufuApi.md#getusergames) | **GET** /v1/users/{id}/games | Get a list of games the user has played.
*TribufuApi* | [**GetUserGroups**](docs/TribufuApi.md#getusergroups) | **GET** /v1/users/{id}/groups | Get a list of groups the user is a member of.
*TribufuApi* | [**GetUserInfo**](docs/TribufuApi.md#getuserinfo) | **GET** /v1/oauth2/userinfo | Get current user information.
*TribufuApi* | [**GetUserPunishments**](docs/TribufuApi.md#getuserpunishments) | **GET** /v1/users/{id}/punishments | Get a list of punishments the user has received.
*TribufuApi* | [**GetUserServers**](docs/TribufuApi.md#getuserservers) | **GET** /v1/users/{id}/servers | Get a list of servers the user is owner of.
*TribufuApi* | [**GetUsers**](docs/TribufuApi.md#getusers) | **GET** /v1/users | Get a list of user profiles.
*TribufuApi* | [**HashArgon2**](docs/TribufuApi.md#hashargon2) | **POST** /v1/utils/argon2 | Hash a string using argon2.
*TribufuApi* | [**HashBcrypt**](docs/TribufuApi.md#hashbcrypt) | **POST** /v1/utils/bcrypt | Hash a string using bcrypt.
*TribufuApi* | [**HashMd5**](docs/TribufuApi.md#hashmd5) | **POST** /v1/utils/md5 | Hash a string using md5.
*TribufuApi* | [**HashSha256**](docs/TribufuApi.md#hashsha256) | **POST** /v1/utils/sha256 | Hash a string using sha256.
*TribufuApi* | [**IntrospectToken**](docs/TribufuApi.md#introspecttoken) | **POST** /v1/oauth2/introspect | Introspect a token.
*TribufuApi* | [**Login**](docs/TribufuApi.md#login) | **POST** /v1/login | Login with name or email and password.
*TribufuApi* | [**Logout**](docs/TribufuApi.md#logout) | **POST** /v1/logout | Invalidate credentials.
*TribufuApi* | [**Refresh**](docs/TribufuApi.md#refresh) | **POST** /v1/refresh | Refresh credentials.
*TribufuApi* | [**Register**](docs/TribufuApi.md#register) | **POST** /v1/register | Create a new user.
*TribufuApi* | [**RevokeToken**](docs/TribufuApi.md#revoketoken) | **POST** /v1/oauth2/revoke | Revoke a token.
*TribufuApi* | [**Search**](docs/TribufuApi.md#search) | **POST** /v1/search | Advanced search for servers or players.
*TribufuApi* | [**UpdateGameServer**](docs/TribufuApi.md#updategameserver) | **PUT** /v1/servers/{id} | Update a game server.
*TribufuApi* | [**UpdateGameServerCluster**](docs/TribufuApi.md#updategameservercluster) | **PUT** /v1/clusters/{id} | Update a game server cluster.
*TribufuApi* | [**UpdateGroup**](docs/TribufuApi.md#updategroup) | **PUT** /v1/groups/{id} | Update a group.
*TribufuApi* | [**UpdateUserProfile**](docs/TribufuApi.md#updateuserprofile) | **PUT** /v1/users/{id}/profile | Update a user profile.
<a id="documentation-for-models"></a>
## Documentation for Models
- [Model.Account](docs/Account.md)
- [Model.Application](docs/Application.md)
- [Model.ApplicationType](docs/ApplicationType.md)
- [Model.AuthorizeRequest](docs/AuthorizeRequest.md)
- [Model.CodeChallengeMethod](docs/CodeChallengeMethod.md)
- [Model.CryptoViewModel](docs/CryptoViewModel.md)
- [Model.Game](docs/Game.md)
- [Model.GameServer](docs/GameServer.md)
- [Model.GameServerCluster](docs/GameServerCluster.md)
- [Model.GrantType](docs/GrantType.md)
- [Model.Group](docs/Group.md)
- [Model.GroupGame](docs/GroupGame.md)
- [Model.GroupMember](docs/GroupMember.md)
- [Model.GroupRank](docs/GroupRank.md)
- [Model.HashViewModel](docs/HashViewModel.md)
- [Model.IntrospectRequest](docs/IntrospectRequest.md)
- [Model.IpAddress](docs/IpAddress.md)
- [Model.LeaderboardItem](docs/LeaderboardItem.md)
- [Model.LeaderboardOrder](docs/LeaderboardOrder.md)
- [Model.LoginProvider](docs/LoginProvider.md)
- [Model.LoginRequest](docs/LoginRequest.md)
- [Model.LoginResponse](docs/LoginResponse.md)
- [Model.Package](docs/Package.md)
- [Model.Profile](docs/Profile.md)
- [Model.ProfileGame](docs/ProfileGame.md)
- [Model.ProfileGroup](docs/ProfileGroup.md)
- [Model.RefreshRequest](docs/RefreshRequest.md)
- [Model.RegisterRequest](docs/RegisterRequest.md)
- [Model.ResponseType](docs/ResponseType.md)
- [Model.RevokeRequest](docs/RevokeRequest.md)
- [Model.SearchRequest](docs/SearchRequest.md)
- [Model.SearchType](docs/SearchType.md)
- [Model.ServerMetrics](docs/ServerMetrics.md)
- [Model.ServerStatus](docs/ServerStatus.md)
- [Model.Subscription](docs/Subscription.md)
- [Model.TokenHintType](docs/TokenHintType.md)
- [Model.TokenRequest](docs/TokenRequest.md)
- [Model.TokenResponse](docs/TokenResponse.md)
- [Model.TokenType](docs/TokenType.md)
- [Model.UpdateProfile](docs/UpdateProfile.md)
- [Model.UserInfo](docs/UserInfo.md)
- [Model.UserType](docs/UserType.md)
<a id="documentation-for-authorization"></a>
## Documentation for Authorization
Authentication schemes defined for the API:
<a id="ApiKey"></a>
### ApiKey
- **Type**: API key
- **API key parameter name**: Authorization
- **Location**: HTTP header
[MIT License]: https://github.com/tribufu/tribufu-dotnet/blob/main/LICENSE.txt

View File

@@ -3,10 +3,22 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16 # Visual Studio Version 16
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu", "src\Tribufu\Tribufu.csproj", "{7B7890D8-863A-4F1D-98C0-4B7D8C46CB52}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu", "src\Tribufu\Tribufu.csproj", "{7B7890D8-863A-4F1D-98C0-4B7D8C46CB52}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.Generated", "src\Tribufu.Generated\Tribufu.Generated.csproj", "{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.Example", "src\Tribufu.Example\Tribufu.Example.csproj", "{D6392A29-E2DC-4050-B4C1-B279DD2D226D}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.Example", "src\Tribufu.Example\Tribufu.Example.csproj", "{D6392A29-E2DC-4050-B4C1-B279DD2D226D}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.Logging", "src\Tribufu.Logging\Tribufu.Logging.csproj", "{CFD80847-9B98-4991-BADF-8714E7D8D81C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.Configuration", "src\Tribufu.Configuration\Tribufu.Configuration.csproj", "{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.Platform", "src\Tribufu.Platform\Tribufu.Platform.csproj", "{26EEB407-733C-4383-9211-B083CD5F593B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.EntityFrameworkCore", "src\Tribufu.EntityFrameworkCore\Tribufu.EntityFrameworkCore.csproj", "{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.Serialization", "src\Tribufu.Serialization\Tribufu.Serialization.csproj", "{D6DAE078-2F80-49DD-97A3-B1223FE04F91}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.ComponentModel", "src\Tribufu.ComponentModel\Tribufu.ComponentModel.csproj", "{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.AspNetCore", "src\Tribufu.AspNetCore\Tribufu.AspNetCore.csproj", "{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@@ -29,18 +41,6 @@ Global
{7B7890D8-863A-4F1D-98C0-4B7D8C46CB52}.Release|x64.Build.0 = Release|Any CPU {7B7890D8-863A-4F1D-98C0-4B7D8C46CB52}.Release|x64.Build.0 = Release|Any CPU
{7B7890D8-863A-4F1D-98C0-4B7D8C46CB52}.Release|x86.ActiveCfg = Release|Any CPU {7B7890D8-863A-4F1D-98C0-4B7D8C46CB52}.Release|x86.ActiveCfg = Release|Any CPU
{7B7890D8-863A-4F1D-98C0-4B7D8C46CB52}.Release|x86.Build.0 = Release|Any CPU {7B7890D8-863A-4F1D-98C0-4B7D8C46CB52}.Release|x86.Build.0 = Release|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Debug|x64.ActiveCfg = Debug|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Debug|x64.Build.0 = Debug|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Debug|x86.ActiveCfg = Debug|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Debug|x86.Build.0 = Debug|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Release|Any CPU.Build.0 = Release|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Release|x64.ActiveCfg = Release|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Release|x64.Build.0 = Release|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Release|x86.ActiveCfg = Release|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Release|x86.Build.0 = Release|Any CPU
{D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Debug|Any CPU.Build.0 = Debug|Any CPU {D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Debug|x64.ActiveCfg = Debug|Any CPU {D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -53,6 +53,90 @@ Global
{D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Release|x64.Build.0 = Release|Any CPU {D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Release|x64.Build.0 = Release|Any CPU
{D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Release|x86.ActiveCfg = Release|Any CPU {D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Release|x86.ActiveCfg = Release|Any CPU
{D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Release|x86.Build.0 = Release|Any CPU {D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Release|x86.Build.0 = Release|Any CPU
{CFD80847-9B98-4991-BADF-8714E7D8D81C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CFD80847-9B98-4991-BADF-8714E7D8D81C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CFD80847-9B98-4991-BADF-8714E7D8D81C}.Debug|x64.ActiveCfg = Debug|Any CPU
{CFD80847-9B98-4991-BADF-8714E7D8D81C}.Debug|x64.Build.0 = Debug|Any CPU
{CFD80847-9B98-4991-BADF-8714E7D8D81C}.Debug|x86.ActiveCfg = Debug|Any CPU
{CFD80847-9B98-4991-BADF-8714E7D8D81C}.Debug|x86.Build.0 = Debug|Any CPU
{CFD80847-9B98-4991-BADF-8714E7D8D81C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CFD80847-9B98-4991-BADF-8714E7D8D81C}.Release|Any CPU.Build.0 = Release|Any CPU
{CFD80847-9B98-4991-BADF-8714E7D8D81C}.Release|x64.ActiveCfg = Release|Any CPU
{CFD80847-9B98-4991-BADF-8714E7D8D81C}.Release|x64.Build.0 = Release|Any CPU
{CFD80847-9B98-4991-BADF-8714E7D8D81C}.Release|x86.ActiveCfg = Release|Any CPU
{CFD80847-9B98-4991-BADF-8714E7D8D81C}.Release|x86.Build.0 = Release|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Debug|x64.ActiveCfg = Debug|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Debug|x64.Build.0 = Debug|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Debug|x86.ActiveCfg = Debug|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Debug|x86.Build.0 = Debug|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Release|Any CPU.Build.0 = Release|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Release|x64.ActiveCfg = Release|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Release|x64.Build.0 = Release|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Release|x86.ActiveCfg = Release|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Release|x86.Build.0 = Release|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Debug|x64.ActiveCfg = Debug|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Debug|x64.Build.0 = Debug|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Debug|x86.ActiveCfg = Debug|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Debug|x86.Build.0 = Debug|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Release|Any CPU.Build.0 = Release|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Release|x64.ActiveCfg = Release|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Release|x64.Build.0 = Release|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Release|x86.ActiveCfg = Release|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Release|x86.Build.0 = Release|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Debug|x64.ActiveCfg = Debug|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Debug|x64.Build.0 = Debug|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Debug|x86.ActiveCfg = Debug|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Debug|x86.Build.0 = Debug|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Release|Any CPU.Build.0 = Release|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Release|x64.ActiveCfg = Release|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Release|x64.Build.0 = Release|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Release|x86.ActiveCfg = Release|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Release|x86.Build.0 = Release|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Debug|x64.ActiveCfg = Debug|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Debug|x64.Build.0 = Debug|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Debug|x86.ActiveCfg = Debug|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Debug|x86.Build.0 = Debug|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Release|Any CPU.Build.0 = Release|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Release|x64.ActiveCfg = Release|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Release|x64.Build.0 = Release|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Release|x86.ActiveCfg = Release|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Release|x86.Build.0 = Release|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Debug|x64.ActiveCfg = Debug|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Debug|x64.Build.0 = Debug|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Debug|x86.ActiveCfg = Debug|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Debug|x86.Build.0 = Debug|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Release|Any CPU.Build.0 = Release|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Release|x64.ActiveCfg = Release|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Release|x64.Build.0 = Release|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Release|x86.ActiveCfg = Release|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Release|x86.Build.0 = Release|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Debug|x64.ActiveCfg = Debug|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Debug|x64.Build.0 = Debug|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Debug|x86.ActiveCfg = Debug|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Debug|x86.Build.0 = Debug|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Release|Any CPU.Build.0 = Release|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Release|x64.ActiveCfg = Release|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Release|x64.Build.0 = Release|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Release|x86.ActiveCfg = Release|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

0
releases/.gitkeep Normal file
View File

View File

@@ -7,6 +7,6 @@ java -jar ./vendor/openapi-generator/openapi-generator-cli.jar generate `
-g csharp ` -g csharp `
-o . ` -o . `
--global-property apis,models,supportingFiles,apiDocs=false,modelDocs=false,apiTests=false,modelTests=false ` --global-property apis,models,supportingFiles,apiDocs=false,modelDocs=false,apiTests=false,modelTests=false `
--additional-properties=packageName=Tribufu.Generated,library=restsharp,zeroBasedEnums=true,nullableReferenceTypes=true ` --additional-properties=packageName=Tribufu,library=restsharp,targetFramework=net47,zeroBasedEnums=true `
--openapi-normalizer SET_TAGS_FOR_ALL_OPERATIONS=TribufuGenerated ` --openapi-normalizer SET_TAGS_FOR_ALL_OPERATIONS=TribufuGenerated `
--skip-validate-spec --skip-validate-spec

7
scripts/package.ps1 Normal file
View File

@@ -0,0 +1,7 @@
#!/usr/bin/env pwsh
Get-ChildItem ./releases -Filter *.nupkg -Recurse -Force | Remove-Item -Force
dotnet clean
dotnet build -c Release
dotnet pack -c Release -o ./releases

View File

@@ -1,3 +0,0 @@
#!/usr/bin/env sh
dotnet pack

View File

@@ -0,0 +1,33 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: UNLICENSED
using Microsoft.AspNetCore.Http;
using System;
using System.Linq;
namespace Tribufu.AspNetCore.Extensions
{
public static class HttpContextExtensions
{
public static string GetIpAddress(this HttpContext context)
{
var headers = context.Request.Headers;
if (headers.TryGetValue("CF-Connecting-IP", out var cfConnectingIp))
{
return cfConnectingIp.FirstOrDefault() ?? "127.0.0.1";
}
if (headers.TryGetValue("X-Forwarded-For", out var xForwardedFor))
{
var forwardedIps = xForwardedFor.ToString().Split(',', StringSplitOptions.RemoveEmptyEntries);
if (forwardedIps.Length > 0)
{
return forwardedIps[0].Trim();
}
}
return context.Connection.RemoteIpAddress?.ToString() ?? "127.0.0.1";
}
}
}

View File

@@ -0,0 +1 @@
# Tribufu AspNetCore

View File

@@ -0,0 +1,28 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>Tribufu.AspNetCore</PackageId>
<Description>Tribufu AspNetCore</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<AppDesignerFolder>Properties</AppDesignerFolder>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IsPublishable>false</IsPublishable>
<Nullable>enable</Nullable>
<OutputType>Library</OutputType>
<TargetFrameworks>net8.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Tribufu.Configuration\Tribufu.Configuration.csproj" />
<ProjectReference Include="..\Tribufu.Logging\Tribufu.Logging.csproj" />
<ProjectReference Include="..\Tribufu.Platform\Tribufu.Platform.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,30 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using System;
using System.ComponentModel;
using System.Globalization;
using System.Runtime.Serialization;
namespace Tribufu.ComponentModel
{
public class EnumMemberConverter<T> : EnumConverter
{
public EnumMemberConverter(Type type) : base(type) { }
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
var type = typeof(T);
foreach (var field in type.GetFields())
{
if (Attribute.GetCustomAttribute(field, typeof(EnumMemberAttribute)) is EnumMemberAttribute attribute && value is string enumValue && attribute.Value == enumValue)
{
return field.GetValue(null);
}
}
return base.ConvertFrom(context, culture, value);
}
}
}

View File

@@ -0,0 +1 @@
# Tribufu ComponentModel

View File

@@ -0,0 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>Tribufu.ComponentModel</PackageId>
<Description>Tribufu ComponentModel</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<AppDesignerFolder>Properties</AppDesignerFolder>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IsPublishable>false</IsPublishable>
<OutputType>Library</OutputType>
<TargetFrameworks>netstandard2.0;net45;net5.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,50 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Microsoft.Extensions.Configuration;
using System.IO;
using Tomlyn.Extensions.Configuration;
using Tribufu.Logging;
using Tribufu.Platform;
namespace Tribufu.Configuration
{
public static class ConfigurationLoader
{
public static IConfiguration Load(string[] fileNames)
{
var configDirectory = Paths.GetApplicationConfigDirectory();
var configurationBuilder = new ConfigurationBuilder();
configurationBuilder.AddEnvironmentVariables();
foreach (var fileName in fileNames)
{
var fullPath = Path.Combine(configDirectory, fileName);
if (!File.Exists(fullPath))
{
Logger.Debug($"Config file '{fullPath}' not found, skipping.");
continue;
}
var extension = Path.GetExtension(fullPath).ToLowerInvariant();
switch (extension)
{
case ".ini":
configurationBuilder.AddIniFile(fullPath, true, false);
break;
case ".json":
configurationBuilder.AddJsonFile(fullPath, true, false);
break;
case ".toml":
configurationBuilder.AddTomlFile(fullPath, true, false);
break;
default:
Logger.Warn($"Unsupported config file extension: {extension}");
break;
}
}
return configurationBuilder.Build();
}
}
}

View File

@@ -0,0 +1,16 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Microsoft.Extensions.Configuration;
namespace Tribufu.Configuration.Extensions
{
public static class IConfigurationExtensions
{
public static string? Get(this IConfiguration configuration, string prefix, string key)
{
var section = configuration.GetSection(prefix);
return !section.Exists() ? configuration[$"{prefix}_{key}"] : section[key];
}
}
}

View File

@@ -0,0 +1 @@
# Tribufu Configuration

View File

@@ -0,0 +1,32 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>Tribufu.Configuration</PackageId>
<Description>Tribufu Configuration</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<AppDesignerFolder>Properties</AppDesignerFolder>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IsPublishable>false</IsPublishable>
<Nullable>enable</Nullable>
<OutputType>Library</OutputType>
<TargetFrameworks>net6.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" />
<PackageReference Include="Microsoft.Extensions.Configuration.Ini" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" />
<PackageReference Include="Microsoft.Extensions.Configuration" />
<PackageReference Include="Newtonsoft.Json" />
<PackageReference Include="Tomlyn.Extensions.Configuration" />
<PackageReference Include="Tomlyn" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Tribufu.Logging\Tribufu.Logging.csproj" />
<ProjectReference Include="..\Tribufu.Platform\Tribufu.Platform.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,105 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Microsoft.Extensions.Configuration;
using System;
namespace Tribufu.EntityFrameworkCore
{
public class DatabaseConfiguration
{
public DatabaseDriver Driver { get; set; }
public string? Version { get; set; }
public string? Host { get; set; }
public string? Port { get; set; }
public string? User { get; set; }
public string? Password { get; set; }
public string? Schema { get; set; }
/// <summary>
/// Loads the <see cref="DatabaseConfiguration"/> from the "database" section or from root-level keys prefixed with "database_".
/// </summary>
/// <param name="configuration">The configuration source.</param>
/// <returns>The populated <see cref="DatabaseConfiguration"/> instance.</returns>
public static DatabaseConfiguration Load(IConfiguration configuration)
{
var section = configuration.GetSection("database");
var useRootFallback = !section.Exists();
string? GetConfig(string key) => useRootFallback ? configuration[$"database_{key}"] : section[key];
var driverString = GetConfig("driver") ?? throw new Exception("Missing database driver");
if (!Enum.TryParse<DatabaseDriver>(driverString, true, out var driver))
{
throw new Exception($"Unsupported database driver: {driverString}");
}
return new DatabaseConfiguration
{
Driver = driver,
Version = GetConfig("version"),
Host = GetConfig("host"),
Port = GetConfig("port"),
User = GetConfig("user"),
Password = GetConfig("password"),
Schema = GetConfig("schema")
};
}
/*
services.AddDbContext<DbContext>(options =>
{
switch (dbConfig.Driver)
{
case DatabaseDriver.MySql:
var mysqlConnection = $"Server={dbConfig.Host};Port={dbConfig.Port};Uid={dbConfig.User};Pwd={dbConfig.Password};Database={dbConfig.Schema};ConvertZeroDateTime=True;";
options.UseMySql(mysqlConnection, ServerVersion.Parse(dbConfig.Version ?? "8.0"), mySqlOptions => { });
break;
case DatabaseDriver.Postgres:
var pgsqlConnection = $"Host={dbConfig.Host};Port={dbConfig.Port};Database={dbConfig.Schema};Username={dbConfig.User};Password={dbConfig.Password};";
options.UseNpgsql(pgsqlConnection, npgsqlOptions => { });
break;
case DatabaseDriver.SqlServer:
var sqlServerConnection = $"Server={dbConfig.Host},{dbConfig.Port};Database={dbConfig.Schema};User Id={dbConfig.User};Password={dbConfig.Password};Encrypt=True;TrustServerCertificate=True;";
options.UseSqlServer(sqlServerConnection, sqlOptions => { });
break;
case DatabaseDriver.Oracle:
var oracleConnection = $"User Id={dbConfig.User};Password={dbConfig.Password};Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={dbConfig.Host})(PORT={dbConfig.Port})))(CONNECT_DATA=(SERVICE_NAME={dbConfig.Schema})));";
options.UseOracle(oracleConnection, oracleOptions => { });
break;
case DatabaseDriver.Firebird:
var firebirdConnection = $"User={dbConfig.User};Password={dbConfig.Password};Database={dbConfig.Host}:{dbConfig.Port}/{dbConfig.Schema};Dialect=3;";
options.UseFirebird(firebirdConnection, firebirdOptions => { });
break;
case DatabaseDriver.Sqlite:
var savedDirectory = Paths.GetApplicationSavedDirectory();
if (!Directory.Exists(savedDirectory)) Directory.CreateDirectory(savedDirectory);
var sqliteDatabaseFile = string.IsNullOrEmpty(dbConfig.Schema) ? "default.db" : $"{dbConfig.Schema}.db";
var sqliteDatabasePath = Path.Combine(savedDirectory, sqliteDatabaseFile);
options.UseSqlite($"Data Source={sqliteDatabasePath}", sqliteOptions => { });
break;
case DatabaseDriver.MongoDb:
var mongoUriBuilder = new MongoUrlBuilder
{
Server = new MongoServerAddress(dbConfig.Host, int.Parse(dbConfig.Port ?? "27017")),
Username = dbConfig.User,
Password = dbConfig.Password,
DatabaseName = dbConfig.Schema
};
var mongoClient = new MongoClient(mongoUriBuilder.ToMongoUrl());
var mongoDatabase = mongoClient.GetDatabase(dbConfig.Schema ?? "default");
options.UseMongoDB(mongoDatabase.Client, mongoDatabase.DatabaseNamespace.DatabaseName);
break;
default:
throw new NotSupportedException($"Unsupported database driver: {dbConfig.Driver}");
}
});
*/
}
}

View File

@@ -0,0 +1,12 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
namespace Tribufu.EntityFrameworkCore
{
public static class DatabaseConstants
{
public const uint DEFAULT_PAGINATION = 20;
public const uint MAX_PAGINATION = 100;
}
}

View File

@@ -0,0 +1,22 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
namespace Tribufu.EntityFrameworkCore
{
public enum DatabaseDriver : byte
{
MySql = 0,
Postgres = 1,
SqlServer = 2,
Oracle = 3,
Firebird = 4,
Sqlite = 5,
MongoDb = 6,
}
}

View File

@@ -0,0 +1 @@
# Tribufu EntityFrameworkCore

View File

@@ -0,0 +1,41 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Tribufu.EntityFrameworkCore.Repositories
{
public interface IRepository<T, K> where T : class
{
Task SeedAsync();
IList<T> GetAll();
Task<IList<T>> GetAllAsync();
IList<T> GetPage(uint page, uint limit);
Task<IList<T>> GetPageAsync(uint page, uint limit);
T? GetOne(K key);
Task<T?> GetOneAsync(K key);
T? Create(T entity);
Task<T?> CreateAsync(T entity);
T? Update(T entity);
Task<T?> UpdateAsync(T entity);
void Delete(K key);
Task DeleteAsync(K key);
void Delete(T entity);
Task DeleteAsync(T entity);
}
}

View File

@@ -0,0 +1,117 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Tribufu.EntityFrameworkCore.Repositories
{
public class Repository<C, T, K> : IRepository<T, K> where C : DbContext where T : class
{
protected readonly C _context;
protected readonly DbSet<T> _dbSet;
public Repository(C context)
{
_context = context ?? throw new ArgumentNullException(nameof(context));
_dbSet = context.Set<T>();
}
public virtual async Task SeedAsync()
{
}
public virtual IList<T> GetAll()
{
return [.. _dbSet];
}
public virtual async Task<IList<T>> GetAllAsync()
{
return await _dbSet.ToListAsync();
}
public virtual IList<T> GetPage(uint page, uint limit)
{
return _dbSet.Skip((int)((page < 1 ? 0 : page - 1) * limit)).Take((int)limit).ToList();
}
public virtual async Task<IList<T>> GetPageAsync(uint page, uint limit)
{
return await _dbSet.Skip((int)((page < 1 ? 0 : page - 1) * limit)).Take((int)limit).ToListAsync();
}
public virtual T? GetOne(K key)
{
return _dbSet.Find(key);
}
public virtual async Task<T?> GetOneAsync(K key)
{
return await _dbSet.FindAsync(key);
}
public virtual T? Create(T entity)
{
_dbSet.Add(entity);
var result = _context.SaveChanges();
return result > 0 ? entity : null;
}
public virtual async Task<T?> CreateAsync(T entity)
{
await _dbSet.AddAsync(entity);
var result = await _context.SaveChangesAsync();
return result > 0 ? entity : null;
}
public virtual T? Update(T entity)
{
_dbSet.Update(entity);
var result = _context.SaveChanges();
return result > 0 ? entity : null;
}
public virtual async Task<T?> UpdateAsync(T entity)
{
_dbSet.Update(entity);
var result = await _context.SaveChangesAsync();
return result > 0 ? entity : null;
}
public virtual void Delete(K key)
{
var entity = _dbSet.Find(key);
if (entity != null)
{
Delete(entity);
}
}
public virtual async Task DeleteAsync(K key)
{
var entity = await _dbSet.FindAsync(key);
if (entity != null)
{
await DeleteAsync(entity);
}
}
public virtual void Delete(T entity)
{
_dbSet.Remove(entity);
_context.SaveChanges();
}
public virtual async Task DeleteAsync(T entity)
{
_dbSet.Remove(entity);
await _context.SaveChangesAsync();
}
}
}

View File

@@ -0,0 +1,26 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>Tribufu.EntityFrameworkCore</PackageId>
<Description>Tribufu EntityFrameworkCore</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<AppDesignerFolder>Properties</AppDesignerFolder>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IsPublishable>false</IsPublishable>
<Nullable>enable</Nullable>
<OutputType>Library</OutputType>
<TargetFrameworks>net8.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Tribufu.Configuration\Tribufu.Configuration.csproj" />
<ProjectReference Include="..\Tribufu.Logging\Tribufu.Logging.csproj" />
<ProjectReference Include="..\Tribufu.Platform\Tribufu.Platform.csproj" />
</ItemGroup>
</Project>

View File

@@ -1,8 +1,11 @@
// Copyright (c) Tribufu. All Rights Reserved. // Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: UNLICENSED // SPDX-License-Identifier: MIT
using dotenv.net; using dotenv.net;
using Tribufu.Generated.Client; using System;
using System.Threading.Tasks;
using Tribufu.Client;
using Tribufu.Logging;
namespace Tribufu.Test namespace Tribufu.Test
{ {
@@ -10,21 +13,23 @@ namespace Tribufu.Test
{ {
public static async Task Main(string[] args) public static async Task Main(string[] args)
{ {
Logger.Initialize(LogLevel.Trace);
DotEnv.Load(new DotEnvOptions(ignoreExceptions: true, envFilePaths: [".env", "../../.env"])); DotEnv.Load(new DotEnvOptions(ignoreExceptions: true, envFilePaths: [".env", "../../.env"]));
var apiKey = Environment.GetEnvironmentVariable("TRIBUFU_API_KEY"); var apiKey = Environment.GetEnvironmentVariable("TRIBUFU_API_KEY");
var tribufu = new TribufuApi(apiKey ?? ""); var tribufu = new TribufuApi(apiKey ?? "");
Console.WriteLine(TribufuApi.GetVersion()); Logger.Debug(TribufuApi.GetUserAgent());
try try
{ {
var result = await tribufu.GetUserInfoAsync(); var result = await tribufu.GetUserInfoAsync();
Console.WriteLine(result); Logger.Debug(result.ToString());
} }
catch (ApiException e) catch (ApiException e)
{ {
Console.WriteLine(e.Message); Logger.Debug(e.Message);
} }
} }
} }

View File

@@ -1,11 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<ImplicitUsings>enable</ImplicitUsings> <IsPackable>false</IsPackable>
<IsPublishable>false</IsPublishable>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="dotenv.net" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Tribufu.Logging\Tribufu.Logging.csproj" />
<ProjectReference Include="..\Tribufu\Tribufu.csproj" /> <ProjectReference Include="..\Tribufu\Tribufu.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

File diff suppressed because it is too large Load Diff

View File

@@ -1,110 +0,0 @@
/*
* Tribufu API
*
* REST API to access Tribufu services.
*
* The version of the OpenAPI document: 1.1.0
* Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model
{
/// <summary>
/// LoginResponse
/// </summary>
[DataContract(Name = "LoginResponse")]
public partial class LoginResponse : IValidatableObject
{
/// <summary>
/// Initializes a new instance of the <see cref="LoginResponse" /> class.
/// </summary>
/// <param name="user">user.</param>
/// <param name="accessToken">accessToken.</param>
/// <param name="refreshToken">refreshToken.</param>
/// <param name="expiresIn">expiresIn.</param>
public LoginResponse(UserInfo user = default(UserInfo), string accessToken = default(string), string refreshToken = default(string), long expiresIn = default(long))
{
this.User = user;
this.AccessToken = accessToken;
this.RefreshToken = refreshToken;
this.ExpiresIn = expiresIn;
}
/// <summary>
/// Gets or Sets User
/// </summary>
[DataMember(Name = "user", EmitDefaultValue = false)]
public UserInfo User { get; set; }
/// <summary>
/// Gets or Sets AccessToken
/// </summary>
[DataMember(Name = "access_token", EmitDefaultValue = true)]
public string AccessToken { get; set; }
/// <summary>
/// Gets or Sets RefreshToken
/// </summary>
[DataMember(Name = "refresh_token", EmitDefaultValue = true)]
public string RefreshToken { get; set; }
/// <summary>
/// Gets or Sets ExpiresIn
/// </summary>
[DataMember(Name = "expires_in", EmitDefaultValue = false)]
public long ExpiresIn { get; set; }
/// <summary>
/// Returns the string presentation of the object
/// </summary>
/// <returns>String presentation of the object</returns>
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append("class LoginResponse {\n");
sb.Append(" User: ").Append(User).Append("\n");
sb.Append(" AccessToken: ").Append(AccessToken).Append("\n");
sb.Append(" RefreshToken: ").Append(RefreshToken).Append("\n");
sb.Append(" ExpiresIn: ").Append(ExpiresIn).Append("\n");
sb.Append("}\n");
return sb.ToString();
}
/// <summary>
/// Returns the JSON string presentation of the object
/// </summary>
/// <returns>JSON string presentation of the object</returns>
public virtual string ToJson()
{
return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
}
/// <summary>
/// To validate all properties of the instance
/// </summary>
/// <param name="validationContext">Validation context</param>
/// <returns>Validation Result</returns>
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
yield break;
}
}
}

View File

@@ -1,83 +0,0 @@
/*
* Tribufu API
*
* REST API to access Tribufu services.
*
* The version of the OpenAPI document: 1.1.0
* Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model
{
/// <summary>
/// RefreshRequest
/// </summary>
[DataContract(Name = "RefreshRequest")]
public partial class RefreshRequest : IValidatableObject
{
/// <summary>
/// Initializes a new instance of the <see cref="RefreshRequest" /> class.
/// </summary>
/// <param name="refreshToken">refreshToken.</param>
public RefreshRequest(string refreshToken = default(string))
{
this.RefreshToken = refreshToken;
}
/// <summary>
/// Gets or Sets RefreshToken
/// </summary>
[DataMember(Name = "refresh_token", EmitDefaultValue = true)]
public string RefreshToken { get; set; }
/// <summary>
/// Returns the string presentation of the object
/// </summary>
/// <returns>String presentation of the object</returns>
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append("class RefreshRequest {\n");
sb.Append(" RefreshToken: ").Append(RefreshToken).Append("\n");
sb.Append("}\n");
return sb.ToString();
}
/// <summary>
/// Returns the JSON string presentation of the object
/// </summary>
/// <returns>JSON string presentation of the object</returns>
public virtual string ToJson()
{
return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
}
/// <summary>
/// To validate all properties of the instance
/// </summary>
/// <param name="validationContext">Validation context</param>
/// <returns>Validation Result</returns>
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
yield break;
}
}
}

View File

@@ -1 +0,0 @@
# Tribufu

View File

@@ -1,27 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>Tribufu.Generated</PackageId>
<Description>Tribufu .NET SDK</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<AppDesignerFolder>Properties</AppDesignerFolder>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>annotations</Nullable>
<OutputType>Library</OutputType>
<TargetFrameworks>net6.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="dotenv.net" />
<PackageReference Include="JsonSubTypes" />
<PackageReference Include="Newtonsoft.Json" />
<PackageReference Include="Polly" />
<PackageReference Include="RestSharp" />
<PackageReference Include="System.ComponentModel.Annotations" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,20 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
namespace Tribufu.Logging
{
public enum LogLevel : byte
{
Off = 0,
Error = 1,
Warn = 2,
Info = 3,
Debug = 4,
Trace = 5,
}
}

View File

@@ -0,0 +1,79 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using System;
namespace Tribufu.Logging
{
public static class Logger
{
private static LogLevel _level = LogLevel.Off;
public static void Initialize(LogLevel level = LogLevel.Off)
{
_level = level;
}
public static void Info(object context, string message)
{
Info($"({context.GetType().Name}) {message}");
}
public static void Warn(object context, string message)
{
Warn($"({context.GetType().Name}) {message}");
}
public static void Error(object context, string message)
{
Error($"({context.GetType().Name}) {message}");
}
public static void Debug(object context, string message)
{
Debug($"({context.GetType().Name}) {message}");
}
public static void Trace(object context, string message)
{
Trace($"({context.GetType().Name}) {message}");
}
public static void Info(string message)
{
Log(LogLevel.Info, message, ConsoleColor.Green);
}
public static void Warn(string message)
{
Log(LogLevel.Warn, message, ConsoleColor.Yellow);
}
public static void Error(string message)
{
Log(LogLevel.Error, message, ConsoleColor.Red);
}
public static void Debug(string message)
{
Log(LogLevel.Debug, message, ConsoleColor.White);
}
public static void Trace(string message)
{
Log(LogLevel.Trace, message, ConsoleColor.DarkGray);
}
private static void Log(LogLevel level, string message, ConsoleColor color)
{
if (level <= _level)
{
var defaultColor = Console.ForegroundColor;
Console.ForegroundColor = color;
var timestamp = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss");
Console.WriteLine($"[{timestamp}] [{level.ToString().ToUpper()}]: {message}");
Console.ForegroundColor = defaultColor;
}
}
}
}

View File

@@ -0,0 +1 @@
# Tribufu Logging

View File

@@ -0,0 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>Tribufu.Logging</PackageId>
<Description>Tribufu Logging</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<AppDesignerFolder>Properties</AppDesignerFolder>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IsPublishable>false</IsPublishable>
<OutputType>Library</OutputType>
<TargetFrameworks>netstandard2.0;net45;net5.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,45 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: UNLICENSED
using IdGen;
using System;
namespace Tribufu.Platform
{
public static class FlakeGenerator
{
public static readonly DateTime EPOCH = new(2016, 1, 1, 0, 0, 0, DateTimeKind.Utc);
private static readonly IdStructure _structure = new(41, 10, 12);
private static readonly IdGeneratorOptions _options = new(_structure, new DefaultTimeSource(EPOCH));
private static readonly IdGenerator _generator = new(0, _options);
public static ulong New()
{
//Console.WriteLine("Max. generators : {0}", _structure.MaxGenerators);
//Console.WriteLine("Id's/ms per generator : {0}", _structure.MaxSequenceIds);
//Console.WriteLine("Id's/ms total : {0}", _structure.MaxGenerators * _structure.MaxSequenceIds);
//Console.WriteLine("Wraparound interval : {0}", _structure.WraparoundInterval(_generator.Options.TimeSource));
//Console.WriteLine("Wraparound date : {0}", _structure.WraparoundDate(_generator.Options.TimeSource.Epoch, _generator.Options.TimeSource).ToString("O"));
return (ulong)_generator.CreateId();
}
public static ulong FromTimestamp(DateTime timestamp, ushort sequence = 0)
{
var diff = (long)(timestamp - EPOCH).TotalMilliseconds;
if (diff < 0 || diff > (1L << 41) - 1)
{
throw new ArgumentOutOfRangeException(nameof(timestamp), "Timestamp out of range for flake.");
}
ulong timestampPart = (ulong)diff << 22; // 41 bits << (10+12)
ulong generatorPart = 0ul << 12; // Always 0
ulong sequencePart = (ulong)(sequence & 0xFFF); // 12 bits
return timestampPart | generatorPart | sequencePart;
}
}
}

View File

@@ -0,0 +1,122 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using System;
using System.IO;
using System.Runtime.InteropServices;
using Tribufu.Logging;
namespace Tribufu.Platform
{
/// <summary>
/// Provides standardized access to important directories, such as config, saved data, logs, and platform-specific binaries.
/// This is especially useful for abstracting file path logic across environments (development, production, etc).
/// </summary>
public static class Paths
{
/// <summary>
/// Gets the root base directory of the application.
/// </summary>
/// <remarks>
/// - In development, this resolves to the root of the repository (five levels above bin/Debug or bin/Release).
/// - In production, it resolves to two levels above the binary location.
/// - It uses case-insensitive checks and runtime heuristics to improve accuracy.
/// </remarks>
/// <returns>The absolute path to the base directory.</returns>
public static string GetApplicationDirectory()
{
try
{
string baseDirectory;
string defaultBaseDirectory = AppContext.BaseDirectory;
bool isDevelopment = defaultBaseDirectory.ToLowerInvariant().Contains("debug");
if (isDevelopment)
{
// Go 5 levels up to simulate project root
baseDirectory = Path.Combine(defaultBaseDirectory, "..", "..", "..", "..", "..");
}
else
{
baseDirectory = Path.Combine(defaultBaseDirectory, "..", "..");
}
return Path.GetFullPath(baseDirectory);
}
catch (Exception ex)
{
Logger.Warn($"(Paths) Failed to resolve base directory: {ex.Message}");
return AppContext.BaseDirectory;
}
}
/// <summary>
/// Gets the path to the platform-specific binary directory.
/// </summary>
/// <returns>
/// The absolute path to <c>bin/&lt;runtime-identifier&gt;</c> if available,
/// otherwise falls back to <c>bin/dotnet</c>.
/// </returns>
public static string GetApplicationBinDirectory()
{
var binDirectory = Path.Combine(GetApplicationDirectory(), "bin");
if (!string.IsNullOrEmpty(RuntimeInformation.RuntimeIdentifier))
{
binDirectory = Path.Combine(binDirectory, RuntimeInformation.RuntimeIdentifier);
}
else
{
binDirectory = Path.Combine(binDirectory, "dotnet");
}
return binDirectory;
}
/// <summary>
/// Gets the path to the configuration directory.
/// </summary>
/// <returns>The absolute path to the <c>config</c> directory.</returns>
public static string GetApplicationConfigDirectory()
{
return Path.Combine(GetApplicationDirectory(), "config");
}
/// <summary>
/// Gets the path to the assets directory.
/// </summary>
/// <returns>The absolute path to the <c>assets</c> directory.</returns>
public static string GetApplicationAssetsDirectory()
{
return Path.Combine(GetApplicationDirectory(), "assets");
}
/// <summary>
/// Gets the path to the saved data directory.
/// </summary>
/// <returns>The absolute path to the <c>saved</c> directory.</returns>
public static string GetApplicationSavedDirectory()
{
return Path.Combine(GetApplicationDirectory(), "saved");
}
/// <summary>
/// Gets the path to the cache directory inside <c>saved</c>.
/// </summary>
/// <returns>The absolute path to the <c>saved/cache</c> directory.</returns>
public static string GetApplicationCacheDirectory()
{
return Path.Combine(GetApplicationSavedDirectory(), "cache");
}
/// <summary>
/// Gets the path to the logs directory inside <c>saved</c>.
/// </summary>
/// <returns>The absolute path to the <c>saved/logs</c> directory.</returns>
public static string GetApplicationLogsDirectory()
{
return Path.Combine(GetApplicationSavedDirectory(), "logs");
}
}
}

View File

@@ -0,0 +1 @@
# Tribufu Runtime

View File

@@ -0,0 +1,24 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>Tribufu.Platform</PackageId>
<Description>Tribufu Platform</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<AppDesignerFolder>Properties</AppDesignerFolder>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IsPublishable>false</IsPublishable>
<OutputType>Library</OutputType>
<TargetFrameworks>net5.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="IdGen" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Tribufu.ComponentModel\Tribufu.ComponentModel.csproj" />
<ProjectReference Include="..\Tribufu.Logging\Tribufu.Logging.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,20 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: UNLICENSED
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Tribufu.Serialization
{
public class BaseClassFirstContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
var props = base.CreateProperties(type, memberSerialization);
return props.OrderBy(p => { return p.DeclaringType == type ? 1 : 0; }).ToList();
}
}
}

View File

@@ -0,0 +1,35 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
namespace Tribufu.Serialization
{
public static class CustomSerializerSettings
{
public static JsonSerializerSettings GetNewtonsoftJson()
{
var settings = new JsonSerializerSettings();
SetNewtonsoftJson(settings);
return settings;
}
public static void SetNewtonsoftJson(JsonSerializerSettings settings)
{
settings.ContractResolver = new BaseClassFirstContractResolver
{
NamingStrategy = new SnakeCaseNamingStrategy()
};
settings.Converters.Add(new DecimalNullableStringConverter());
settings.Converters.Add(new DecimalStringConverter());
settings.Converters.Add(new ULongNullableStringConverter());
settings.Converters.Add(new ULongStringConverter());
settings.Converters.Add(new StringEnumConverter(new SnakeCaseNamingStrategy(), false));
settings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
}
}
}

View File

@@ -0,0 +1,46 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Newtonsoft.Json;
using System;
using System.Globalization;
namespace Tribufu.Serialization
{
public class DecimalNullableStringConverter : JsonConverter<decimal?>
{
public override decimal? ReadJson(JsonReader reader, Type objectType, decimal? existingValue, bool hasExistingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.Null)
{
return null;
}
if (reader.TokenType == JsonToken.String || reader.TokenType == JsonToken.Integer)
{
string value = reader.Value?.ToString();
if (string.IsNullOrWhiteSpace(value))
{
return null;
}
return decimal.Parse(value);
}
throw new JsonSerializationException($"Unexpected token {reader.TokenType} when parsing decimal?.");
}
public override void WriteJson(JsonWriter writer, decimal? value, JsonSerializer serializer)
{
if (value.HasValue)
{
writer.WriteValue(value.Value.ToString(CultureInfo.InvariantCulture));
}
else
{
writer.WriteNull();
}
}
}
}

View File

@@ -0,0 +1,32 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Newtonsoft.Json;
using System;
using System.Globalization;
namespace Tribufu.Serialization
{
public class DecimalStringConverter : JsonConverter<decimal>
{
public override decimal ReadJson(JsonReader reader, Type objectType, decimal existingValue, bool hasExistingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.String && decimal.TryParse(reader.Value?.ToString(), out var result))
{
return result;
}
if (reader.TokenType == JsonToken.Integer)
{
return Convert.ToUInt64(reader.Value);
}
throw new JsonSerializationException($"Unexpected token {reader.TokenType} when parsing decimal.");
}
public override void WriteJson(JsonWriter writer, decimal value, JsonSerializer serializer)
{
writer.WriteValue(value.ToString(CultureInfo.InvariantCulture));
}
}
}

View File

@@ -0,0 +1,35 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Newtonsoft.Json.Serialization;
using System.Text.RegularExpressions;
namespace Tribufu.Serialization
{
public class NetworkAwareSnakeCaseNamingStrategy : SnakeCaseNamingStrategy
{
private static readonly string[] KnownAcronyms = new string[] { "IPv4", "IPv6" };
protected override string ResolvePropertyName(string name)
{
if (string.IsNullOrEmpty(name))
{
return name;
}
foreach (var acr in KnownAcronyms)
{
name = Regex.Replace(name, acr, acr.ToLower());
}
var snake = base.ResolvePropertyName(name);
foreach (var acr in KnownAcronyms)
{
var lower = acr.ToLower();
snake = snake.Replace(lower.Replace("_", ""), lower);
}
return snake;
}
}
}

View File

@@ -0,0 +1 @@
# Tribufu Serialization

View File

@@ -0,0 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>Tribufu.Serialization</PackageId>
<Description>Tribufu Serialization</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<AppDesignerFolder>Properties</AppDesignerFolder>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IsPublishable>false</IsPublishable>
<OutputType>Library</OutputType>
<TargetFrameworks>netstandard2.0;net45;net5.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,45 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Newtonsoft.Json;
using System;
namespace Tribufu.Serialization
{
public class ULongNullableStringConverter : JsonConverter<ulong?>
{
public override ulong? ReadJson(JsonReader reader, Type objectType, ulong? existingValue, bool hasExistingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.Null)
{
return null;
}
if (reader.TokenType == JsonToken.String || reader.TokenType == JsonToken.Integer)
{
string value = reader.Value?.ToString();
if (string.IsNullOrWhiteSpace(value))
{
return null;
}
return ulong.Parse(value);
}
throw new JsonSerializationException($"Unexpected token {reader.TokenType} when parsing ulong?.");
}
public override void WriteJson(JsonWriter writer, ulong? value, JsonSerializer serializer)
{
if (value.HasValue)
{
writer.WriteValue(value.Value.ToString());
}
else
{
writer.WriteNull();
}
}
}
}

View File

@@ -0,0 +1,31 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Newtonsoft.Json;
using System;
namespace Tribufu.Serialization
{
public class ULongStringConverter : JsonConverter<ulong>
{
public override ulong ReadJson(JsonReader reader, Type objectType, ulong existingValue, bool hasExistingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.String && ulong.TryParse(reader.Value?.ToString(), out var result))
{
return result;
}
if (reader.TokenType == JsonToken.Integer)
{
return Convert.ToUInt64(reader.Value);
}
throw new JsonSerializationException($"Unexpected token {reader.TokenType} when parsing ulong.");
}
public override void WriteJson(JsonWriter writer, ulong value, JsonSerializer serializer)
{
writer.WriteValue(value.ToString());
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -23,6 +23,7 @@ using System.Text;
using System.Threading; using System.Threading;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Web;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Serialization; using Newtonsoft.Json.Serialization;
using RestSharp; using RestSharp;
@@ -30,9 +31,9 @@ using RestSharp.Serializers;
using RestSharpMethod = RestSharp.Method; using RestSharpMethod = RestSharp.Method;
using FileIO = System.IO.File; using FileIO = System.IO.File;
using Polly; using Polly;
using Tribufu.Generated.Model; using Tribufu.Model;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Allows RestSharp to Serialize/Deserialize JSON using our custom logic, but only when ContentType is JSON. /// Allows RestSharp to Serialize/Deserialize JSON using our custom logic, but only when ContentType is JSON.

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -11,7 +11,7 @@
using System; using System;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// API Exception /// API Exception

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -13,7 +13,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Net; using System.Net;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Provides a non-generic contract for the ApiResponse wrapper. /// Provides a non-generic contract for the ApiResponse wrapper.

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -19,7 +19,7 @@ using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Utility functions providing some benefit to API client consumers. /// Utility functions providing some benefit to API client consumers.
@@ -101,12 +101,6 @@ namespace Tribufu.Generated.Client
// https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx#Anchor_8 // https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx#Anchor_8
// For example: 2009-06-15T13:45:30.0000000 // For example: 2009-06-15T13:45:30.0000000
return dateTimeOffset.ToString((configuration ?? GlobalConfiguration.Instance).DateTimeFormat); return dateTimeOffset.ToString((configuration ?? GlobalConfiguration.Instance).DateTimeFormat);
if (obj is DateOnly dateOnly)
// Return a formatted date string - Can be customized with Configuration.DateTimeFormat
// Defaults to an ISO 8601, using the known as a Round-trip date/time pattern ("o")
// https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx#Anchor_8
// For example: 2009-06-15
return dateOnly.ToString((configuration ?? GlobalConfiguration.Instance).DateTimeFormat);
if (obj is bool boolean) if (obj is bool boolean)
return boolean ? "true" : "false"; return boolean ? "true" : "false";
if (obj is ICollection collection) { if (obj is ICollection collection) {

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -21,7 +21,7 @@ using System.Text;
using System.Net.Http; using System.Net.Http;
using System.Net.Security; using System.Net.Security;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Represents a set of configuration settings /// Represents a set of configuration settings
@@ -537,10 +537,10 @@ namespace Tribufu.Generated.Client
/// </summary> /// </summary>
public static string ToDebugReport() public static string ToDebugReport()
{ {
string report = "C# SDK (Tribufu.Generated) Debug Report:\n"; string report = "C# SDK (Tribufu) Debug Report:\n";
report += " OS: " + System.Environment.OSVersion + "\n"; report += " OS: " + System.Environment.OSVersion + "\n";
report += " .NET Framework Version: " + System.Environment.Version + "\n"; report += " .NET Framework Version: " + System.Environment.Version + "\n";
report += " Version of the API: 1.1.0\n"; report += " Version of the API: 1.3.0\n";
report += " SDK Package Version: 1.0.0\n"; report += " SDK Package Version: 1.0.0\n";
return report; return report;

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -11,7 +11,7 @@
using System; using System;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// A delegate to ExceptionFactory method /// A delegate to ExceptionFactory method

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -11,7 +11,7 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// <see cref="GlobalConfiguration"/> provides a compile-time extension point for globally configuring /// <see cref="GlobalConfiguration"/> provides a compile-time extension point for globally configuring

View File

@@ -1,15 +1,15 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Http methods supported by swagger /// Http methods supported by swagger

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -11,7 +11,7 @@
using System; using System;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Represents configuration aspects required to interact with the API endpoints. /// Represents configuration aspects required to interact with the API endpoints.

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -12,7 +12,7 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Contract for Asynchronous RESTful API interactions. /// Contract for Asynchronous RESTful API interactions.

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -15,7 +15,7 @@ using System.Net;
using System.Net.Security; using System.Net.Security;
using System.Security.Cryptography.X509Certificates; using System.Security.Cryptography.X509Certificates;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Represents a readable-only configuration contract. /// Represents a readable-only configuration contract.

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -12,7 +12,7 @@
using System; using System;
using System.IO; using System.IO;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Contract for Synchronous RESTful API interactions. /// Contract for Synchronous RESTful API interactions.

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -13,7 +13,7 @@ using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// A dictionary in which one key has many associated values. /// A dictionary in which one key has many associated values.

View File

@@ -1,16 +1,16 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Formatter for 'date' openapi formats ss defined by full-date - RFC3339 /// Formatter for 'date' openapi formats ss defined by full-date - RFC3339

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -14,7 +14,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Net; using System.Net;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// A container for generalized request inputs. This type allows consumers to extend the request functionality /// A container for generalized request inputs. This type allows consumers to extend the request functionality

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -12,7 +12,7 @@
using Polly; using Polly;
using RestSharp; using RestSharp;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Configuration class to set the polly retry policies to be applied to the requests. /// Configuration class to set the polly retry policies to be applied to the requests.

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -13,7 +13,7 @@ using System;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Serialization; using Newtonsoft.Json.Serialization;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Abstract base class for oneOf, anyOf schemas in the OpenAPI specification /// Abstract base class for oneOf, anyOf schemas in the OpenAPI specification

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Account /// Account
@@ -36,24 +36,34 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Provider /// Gets or Sets Provider
/// </summary> /// </summary>
[DataMember(Name = "provider", EmitDefaultValue = false)] [DataMember(Name = "provider", IsRequired = true, EmitDefaultValue = true)]
public LoginProvider? Provider { get; set; } public LoginProvider Provider { get; set; }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Account" /> class. /// Initializes a new instance of the <see cref="Account" /> class.
/// </summary> /// </summary>
/// <param name="id">id.</param> [JsonConstructorAttribute]
protected Account() { }
/// <summary>
/// Initializes a new instance of the <see cref="Account" /> class.
/// </summary>
/// <param name="id">id (required).</param>
/// <param name="name">name.</param> /// <param name="name">name.</param>
/// <param name="provider">provider.</param> /// <param name="provider">provider (required).</param>
/// <param name="userId">userId.</param> /// <param name="userId">userId.</param>
/// <param name="authorized">authorized.</param> /// <param name="authorized">authorized.</param>
/// <param name="fields">fields.</param> /// <param name="fields">fields.</param>
/// <param name="created">created.</param> /// <param name="created">created.</param>
/// <param name="updated">updated.</param> /// <param name="updated">updated.</param>
public Account(string id = default(string), string name = default(string), LoginProvider? provider = default(LoginProvider?), string userId = default(string), bool authorized = default(bool), Object fields = default(Object), DateTime created = default(DateTime), DateTime? updated = default(DateTime?)) public Account(string id = default(string), string name = default(string), LoginProvider provider = default(LoginProvider), string userId = default(string), bool authorized = default(bool), Object fields = default(Object), DateTime created = default(DateTime), DateTime? updated = default(DateTime?))
{ {
// to ensure "id" is required (not null)
if (id == null)
{
throw new ArgumentNullException("id is a required property for Account and cannot be null");
}
this.Id = id; this.Id = id;
this.Name = name;
this.Provider = provider; this.Provider = provider;
this.Name = name;
this.UserId = userId; this.UserId = userId;
this.Authorized = authorized; this.Authorized = authorized;
this.Fields = fields; this.Fields = fields;
@@ -64,7 +74,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Id /// Gets or Sets Id
/// </summary> /// </summary>
[DataMember(Name = "id", EmitDefaultValue = true)] [DataMember(Name = "id", IsRequired = true, EmitDefaultValue = true)]
public string Id { get; set; } public string Id { get; set; }
/// <summary> /// <summary>

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Application /// Application
@@ -41,8 +41,13 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Application" /> class. /// Initializes a new instance of the <see cref="Application" /> class.
/// </summary> /// </summary>
[JsonConstructorAttribute]
protected Application() { }
/// <summary>
/// Initializes a new instance of the <see cref="Application" /> class.
/// </summary>
/// <param name="id">id.</param> /// <param name="id">id.</param>
/// <param name="name">name.</param> /// <param name="name">name (required).</param>
/// <param name="description">description.</param> /// <param name="description">description.</param>
/// <param name="type">type.</param> /// <param name="type">type.</param>
/// <param name="organizationId">organizationId.</param> /// <param name="organizationId">organizationId.</param>
@@ -50,21 +55,18 @@ namespace Tribufu.Generated.Model
/// <param name="bannerUrl">bannerUrl.</param> /// <param name="bannerUrl">bannerUrl.</param>
/// <param name="capsuleImageUrl">capsuleImageUrl.</param> /// <param name="capsuleImageUrl">capsuleImageUrl.</param>
/// <param name="libraryImageUrl">libraryImageUrl.</param> /// <param name="libraryImageUrl">libraryImageUrl.</param>
/// <param name="parentId">parentId.</param>
/// <param name="slug">slug.</param> /// <param name="slug">slug.</param>
/// <param name="visibility">visibility.</param>
/// <param name="password">password.</param>
/// <param name="primary">primary.</param>
/// <param name="userCount">userCount.</param>
/// <param name="achievementCount">achievementCount.</param>
/// <param name="badgeCount">badgeCount.</param>
/// <param name="downloadCount">downloadCount.</param>
/// <param name="created">created.</param> /// <param name="created">created.</param>
/// <param name="updated">updated.</param> /// <param name="updated">updated.</param>
public Application(string id = default(string), string name = default(string), string description = default(string), ApplicationType? type = default(ApplicationType?), string organizationId = default(string), string iconUrl = default(string), string bannerUrl = default(string), string capsuleImageUrl = default(string), string libraryImageUrl = default(string), string parentId = default(string), string slug = default(string), int visibility = default(int), string password = default(string), int primary = default(int), int userCount = default(int), int achievementCount = default(int), int? badgeCount = default(int?), int downloadCount = default(int), DateTime created = default(DateTime), DateTime? updated = default(DateTime?)) public Application(string id = default(string), string name = default(string), string description = default(string), ApplicationType? type = default(ApplicationType?), string organizationId = default(string), string iconUrl = default(string), string bannerUrl = default(string), string capsuleImageUrl = default(string), string libraryImageUrl = default(string), string slug = default(string), DateTime created = default(DateTime), DateTime? updated = default(DateTime?))
{ {
this.Id = id; // to ensure "name" is required (not null)
if (name == null)
{
throw new ArgumentNullException("name is a required property for Application and cannot be null");
}
this.Name = name; this.Name = name;
this.Id = id;
this.Description = description; this.Description = description;
this.Type = type; this.Type = type;
this.OrganizationId = organizationId; this.OrganizationId = organizationId;
@@ -72,15 +74,7 @@ namespace Tribufu.Generated.Model
this.BannerUrl = bannerUrl; this.BannerUrl = bannerUrl;
this.CapsuleImageUrl = capsuleImageUrl; this.CapsuleImageUrl = capsuleImageUrl;
this.LibraryImageUrl = libraryImageUrl; this.LibraryImageUrl = libraryImageUrl;
this.ParentId = parentId;
this.Slug = slug; this.Slug = slug;
this.Visibility = visibility;
this.Password = password;
this.Primary = primary;
this.UserCount = userCount;
this.AchievementCount = achievementCount;
this.BadgeCount = badgeCount;
this.DownloadCount = downloadCount;
this.Created = created; this.Created = created;
this.Updated = updated; this.Updated = updated;
} }
@@ -94,7 +88,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Name /// Gets or Sets Name
/// </summary> /// </summary>
[DataMember(Name = "name", EmitDefaultValue = true)] [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
public string Name { get; set; } public string Name { get; set; }
/// <summary> /// <summary>
@@ -133,60 +127,12 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "library_image_url", EmitDefaultValue = true)] [DataMember(Name = "library_image_url", EmitDefaultValue = true)]
public string LibraryImageUrl { get; set; } public string LibraryImageUrl { get; set; }
/// <summary>
/// Gets or Sets ParentId
/// </summary>
[DataMember(Name = "parent_id", EmitDefaultValue = true)]
public string ParentId { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Slug /// Gets or Sets Slug
/// </summary> /// </summary>
[DataMember(Name = "slug", EmitDefaultValue = true)] [DataMember(Name = "slug", EmitDefaultValue = true)]
public string Slug { get; set; } public string Slug { get; set; }
/// <summary>
/// Gets or Sets Visibility
/// </summary>
[DataMember(Name = "visibility", EmitDefaultValue = false)]
public int Visibility { get; set; }
/// <summary>
/// Gets or Sets Password
/// </summary>
[DataMember(Name = "password", EmitDefaultValue = true)]
public string Password { get; set; }
/// <summary>
/// Gets or Sets Primary
/// </summary>
[DataMember(Name = "primary", EmitDefaultValue = false)]
public int Primary { get; set; }
/// <summary>
/// Gets or Sets UserCount
/// </summary>
[DataMember(Name = "user_count", EmitDefaultValue = false)]
public int UserCount { get; set; }
/// <summary>
/// Gets or Sets AchievementCount
/// </summary>
[DataMember(Name = "achievement_count", EmitDefaultValue = false)]
public int AchievementCount { get; set; }
/// <summary>
/// Gets or Sets BadgeCount
/// </summary>
[DataMember(Name = "badge_count", EmitDefaultValue = true)]
public int? BadgeCount { get; set; }
/// <summary>
/// Gets or Sets DownloadCount
/// </summary>
[DataMember(Name = "download_count", EmitDefaultValue = false)]
public int DownloadCount { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Created /// Gets or Sets Created
/// </summary> /// </summary>
@@ -216,15 +162,7 @@ namespace Tribufu.Generated.Model
sb.Append(" BannerUrl: ").Append(BannerUrl).Append("\n"); sb.Append(" BannerUrl: ").Append(BannerUrl).Append("\n");
sb.Append(" CapsuleImageUrl: ").Append(CapsuleImageUrl).Append("\n"); sb.Append(" CapsuleImageUrl: ").Append(CapsuleImageUrl).Append("\n");
sb.Append(" LibraryImageUrl: ").Append(LibraryImageUrl).Append("\n"); sb.Append(" LibraryImageUrl: ").Append(LibraryImageUrl).Append("\n");
sb.Append(" ParentId: ").Append(ParentId).Append("\n");
sb.Append(" Slug: ").Append(Slug).Append("\n"); sb.Append(" Slug: ").Append(Slug).Append("\n");
sb.Append(" Visibility: ").Append(Visibility).Append("\n");
sb.Append(" Password: ").Append(Password).Append("\n");
sb.Append(" Primary: ").Append(Primary).Append("\n");
sb.Append(" UserCount: ").Append(UserCount).Append("\n");
sb.Append(" AchievementCount: ").Append(AchievementCount).Append("\n");
sb.Append(" BadgeCount: ").Append(BadgeCount).Append("\n");
sb.Append(" DownloadCount: ").Append(DownloadCount).Append("\n");
sb.Append(" Created: ").Append(Created).Append("\n"); sb.Append(" Created: ").Append(Created).Append("\n");
sb.Append(" Updated: ").Append(Updated).Append("\n"); sb.Append(" Updated: ").Append(Updated).Append("\n");
sb.Append("}\n"); sb.Append("}\n");
@@ -277,6 +215,12 @@ namespace Tribufu.Generated.Model
yield return new ValidationResult("Invalid value for LibraryImageUrl, length must be less than 255.", new [] { "LibraryImageUrl" }); yield return new ValidationResult("Invalid value for LibraryImageUrl, length must be less than 255.", new [] { "LibraryImageUrl" });
} }
// Slug (string) maxLength
if (this.Slug != null && this.Slug.Length > 75)
{
yield return new ValidationResult("Invalid value for Slug, length must be less than 75.", new [] { "Slug" });
}
yield break; yield break;
} }
} }

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Defines ApplicationType /// Defines ApplicationType

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// AuthorizeRequest /// AuthorizeRequest
@@ -47,20 +47,35 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="AuthorizeRequest" /> class. /// Initializes a new instance of the <see cref="AuthorizeRequest" /> class.
/// </summary> /// </summary>
[JsonConstructorAttribute]
protected AuthorizeRequest() { }
/// <summary>
/// Initializes a new instance of the <see cref="AuthorizeRequest" /> class.
/// </summary>
/// <param name="responseType">responseType.</param> /// <param name="responseType">responseType.</param>
/// <param name="clientId">clientId.</param> /// <param name="clientId">clientId (required).</param>
/// <param name="codeChallenge">codeChallenge.</param> /// <param name="codeChallenge">codeChallenge.</param>
/// <param name="codeChallengeMethod">codeChallengeMethod.</param> /// <param name="codeChallengeMethod">codeChallengeMethod.</param>
/// <param name="redirectUri">redirectUri.</param> /// <param name="redirectUri">redirectUri (required).</param>
/// <param name="scope">scope.</param> /// <param name="scope">scope.</param>
/// <param name="state">state.</param> /// <param name="state">state.</param>
public AuthorizeRequest(ResponseType? responseType = default(ResponseType?), string clientId = default(string), string codeChallenge = default(string), CodeChallengeMethod? codeChallengeMethod = default(CodeChallengeMethod?), string redirectUri = default(string), string scope = default(string), string state = default(string)) public AuthorizeRequest(ResponseType? responseType = default(ResponseType?), string clientId = default(string), string codeChallenge = default(string), CodeChallengeMethod? codeChallengeMethod = default(CodeChallengeMethod?), string redirectUri = default(string), string scope = default(string), string state = default(string))
{ {
this.ResponseType = responseType; // to ensure "clientId" is required (not null)
if (clientId == null)
{
throw new ArgumentNullException("clientId is a required property for AuthorizeRequest and cannot be null");
}
this.ClientId = clientId; this.ClientId = clientId;
// to ensure "redirectUri" is required (not null)
if (redirectUri == null)
{
throw new ArgumentNullException("redirectUri is a required property for AuthorizeRequest and cannot be null");
}
this.RedirectUri = redirectUri;
this.ResponseType = responseType;
this.CodeChallenge = codeChallenge; this.CodeChallenge = codeChallenge;
this.CodeChallengeMethod = codeChallengeMethod; this.CodeChallengeMethod = codeChallengeMethod;
this.RedirectUri = redirectUri;
this.Scope = scope; this.Scope = scope;
this.State = state; this.State = state;
} }
@@ -68,7 +83,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets ClientId /// Gets or Sets ClientId
/// </summary> /// </summary>
[DataMember(Name = "client_id", EmitDefaultValue = true)] [DataMember(Name = "client_id", IsRequired = true, EmitDefaultValue = true)]
public string ClientId { get; set; } public string ClientId { get; set; }
/// <summary> /// <summary>
@@ -80,7 +95,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets RedirectUri /// Gets or Sets RedirectUri
/// </summary> /// </summary>
[DataMember(Name = "redirect_uri", EmitDefaultValue = true)] [DataMember(Name = "redirect_uri", IsRequired = true, EmitDefaultValue = true)]
public string RedirectUri { get; set; } public string RedirectUri { get; set; }
/// <summary> /// <summary>

View File

@@ -0,0 +1,129 @@
/*
* Tribufu API
*
* API to access Tribufu services.
*
* The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Model
{
/// <summary>
/// ClientInfo
/// </summary>
[DataContract(Name = "ClientInfo")]
public partial class ClientInfo : IValidatableObject
{
/// <summary>
/// Gets or Sets Type
/// </summary>
[DataMember(Name = "type", EmitDefaultValue = false)]
public ClientType? Type { get; set; }
/// <summary>
/// Initializes a new instance of the <see cref="ClientInfo" /> class.
/// </summary>
[JsonConstructorAttribute]
protected ClientInfo() { }
/// <summary>
/// Initializes a new instance of the <see cref="ClientInfo" /> class.
/// </summary>
/// <param name="id">id.</param>
/// <param name="name">name (required).</param>
/// <param name="type">type.</param>
/// <param name="photoUrl">photoUrl.</param>
/// <param name="permissions">permissions.</param>
public ClientInfo(string id = default(string), string name = default(string), ClientType? type = default(ClientType?), string photoUrl = default(string), List<string> permissions = default(List<string>))
{
// to ensure "name" is required (not null)
if (name == null)
{
throw new ArgumentNullException("name is a required property for ClientInfo and cannot be null");
}
this.Name = name;
this.Id = id;
this.Type = type;
this.PhotoUrl = photoUrl;
this.Permissions = permissions;
}
/// <summary>
/// Gets or Sets Id
/// </summary>
[DataMember(Name = "id", EmitDefaultValue = false)]
public string Id { get; set; }
/// <summary>
/// Gets or Sets Name
/// </summary>
[DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
public string Name { get; set; }
/// <summary>
/// Gets or Sets PhotoUrl
/// </summary>
[DataMember(Name = "photo_url", EmitDefaultValue = true)]
public string PhotoUrl { get; set; }
/// <summary>
/// Gets or Sets Permissions
/// </summary>
[DataMember(Name = "permissions", EmitDefaultValue = true)]
public List<string> Permissions { get; set; }
/// <summary>
/// Returns the string presentation of the object
/// </summary>
/// <returns>String presentation of the object</returns>
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append("class ClientInfo {\n");
sb.Append(" Id: ").Append(Id).Append("\n");
sb.Append(" Name: ").Append(Name).Append("\n");
sb.Append(" Type: ").Append(Type).Append("\n");
sb.Append(" PhotoUrl: ").Append(PhotoUrl).Append("\n");
sb.Append(" Permissions: ").Append(Permissions).Append("\n");
sb.Append("}\n");
return sb.ToString();
}
/// <summary>
/// Returns the JSON string presentation of the object
/// </summary>
/// <returns>JSON string presentation of the object</returns>
public virtual string ToJson()
{
return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
}
/// <summary>
/// To validate all properties of the instance
/// </summary>
/// <param name="validationContext">Validation context</param>
/// <returns>Validation Result</returns>
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
yield break;
}
}
}

View File

@@ -0,0 +1,54 @@
/*
* Tribufu API
*
* API to access Tribufu services.
*
* The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Model
{
/// <summary>
/// Defines ClientType
/// </summary>
[JsonConverter(typeof(StringEnumConverter))]
public enum ClientType
{
/// <summary>
/// Enum Web for value: web
/// </summary>
[EnumMember(Value = "web")]
Web,
/// <summary>
/// Enum Desktop for value: desktop
/// </summary>
[EnumMember(Value = "desktop")]
Desktop,
/// <summary>
/// Enum Mobile for value: mobile
/// </summary>
[EnumMember(Value = "mobile")]
Mobile
}
}

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Defines CodeChallengeMethod /// Defines CodeChallengeMethod

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,38 +22,48 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// LoginRequest /// CodeResponse
/// </summary> /// </summary>
[DataContract(Name = "LoginRequest")] [DataContract(Name = "CodeResponse")]
public partial class LoginRequest : IValidatableObject public partial class CodeResponse : IValidatableObject
{ {
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="LoginRequest" /> class. /// Initializes a new instance of the <see cref="CodeResponse" /> class.
/// </summary> /// </summary>
/// <param name="login">login.</param> [JsonConstructorAttribute]
/// <param name="password">password.</param> protected CodeResponse() { }
public LoginRequest(string login = default(string), string password = default(string)) /// <summary>
/// Initializes a new instance of the <see cref="CodeResponse" /> class.
/// </summary>
/// <param name="code">code (required).</param>
/// <param name="state">state.</param>
public CodeResponse(string code = default(string), string state = default(string))
{ {
this.Login = login; // to ensure "code" is required (not null)
this.Password = password; if (code == null)
{
throw new ArgumentNullException("code is a required property for CodeResponse and cannot be null");
}
this.Code = code;
this.State = state;
} }
/// <summary> /// <summary>
/// Gets or Sets Login /// Gets or Sets Code
/// </summary> /// </summary>
[DataMember(Name = "login", EmitDefaultValue = true)] [DataMember(Name = "code", IsRequired = true, EmitDefaultValue = true)]
public string Login { get; set; } public string Code { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Password /// Gets or Sets State
/// </summary> /// </summary>
[DataMember(Name = "password", EmitDefaultValue = true)] [DataMember(Name = "state", EmitDefaultValue = true)]
public string Password { get; set; } public string State { get; set; }
/// <summary> /// <summary>
/// Returns the string presentation of the object /// Returns the string presentation of the object
@@ -62,9 +72,9 @@ namespace Tribufu.Generated.Model
public override string ToString() public override string ToString()
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.Append("class LoginRequest {\n"); sb.Append("class CodeResponse {\n");
sb.Append(" Login: ").Append(Login).Append("\n"); sb.Append(" Code: ").Append(Code).Append("\n");
sb.Append(" Password: ").Append(Password).Append("\n"); sb.Append(" State: ").Append(State).Append("\n");
sb.Append("}\n"); sb.Append("}\n");
return sb.ToString(); return sb.ToString();
} }

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,44 +22,49 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// RegisterRequest /// CreateUser
/// </summary> /// </summary>
[DataContract(Name = "RegisterRequest")] [DataContract(Name = "CreateUser")]
public partial class RegisterRequest : IValidatableObject public partial class CreateUser : IValidatableObject
{ {
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="RegisterRequest" /> class. /// Initializes a new instance of the <see cref="CreateUser" /> class.
/// </summary> /// </summary>
[JsonConstructorAttribute] [JsonConstructorAttribute]
protected RegisterRequest() { } protected CreateUser() { }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="RegisterRequest" /> class. /// Initializes a new instance of the <see cref="CreateUser" /> class.
/// </summary> /// </summary>
/// <param name="uuid">uuid.</param> /// <param name="uuid">uuid.</param>
/// <param name="name">name (required).</param> /// <param name="name">name (required).</param>
/// <param name="displayName">displayName.</param>
/// <param name="email">email.</param> /// <param name="email">email.</param>
/// <param name="password">password (required).</param> /// <param name="password">password.</param>
public RegisterRequest(Guid? uuid = default(Guid?), string name = default(string), string email = default(string), string password = default(string)) /// <param name="language">language.</param>
/// <param name="timezone">timezone.</param>
/// <param name="currency">currency.</param>
/// <param name="ipAddress">ipAddress.</param>
public CreateUser(Guid? uuid = default(Guid?), string name = default(string), string displayName = default(string), string email = default(string), string password = default(string), string language = default(string), string timezone = default(string), string currency = default(string), string ipAddress = default(string))
{ {
// to ensure "name" is required (not null) // to ensure "name" is required (not null)
if (name == null) if (name == null)
{ {
throw new ArgumentNullException("name is a required property for RegisterRequest and cannot be null"); throw new ArgumentNullException("name is a required property for CreateUser and cannot be null");
} }
this.Name = name; this.Name = name;
// to ensure "password" is required (not null)
if (password == null)
{
throw new ArgumentNullException("password is a required property for RegisterRequest and cannot be null");
}
this.Password = password;
this.Uuid = uuid; this.Uuid = uuid;
this.DisplayName = displayName;
this.Email = email; this.Email = email;
this.Password = password;
this.Language = language;
this.Timezone = timezone;
this.Currency = currency;
this.IpAddress = ipAddress;
} }
/// <summary> /// <summary>
@@ -74,6 +79,12 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)] [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
public string Name { get; set; } public string Name { get; set; }
/// <summary>
/// Gets or Sets DisplayName
/// </summary>
[DataMember(Name = "display_name", EmitDefaultValue = true)]
public string DisplayName { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Email /// Gets or Sets Email
/// </summary> /// </summary>
@@ -83,9 +94,33 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Password /// Gets or Sets Password
/// </summary> /// </summary>
[DataMember(Name = "password", IsRequired = true, EmitDefaultValue = true)] [DataMember(Name = "password", EmitDefaultValue = true)]
public string Password { get; set; } public string Password { get; set; }
/// <summary>
/// Gets or Sets Language
/// </summary>
[DataMember(Name = "language", EmitDefaultValue = true)]
public string Language { get; set; }
/// <summary>
/// Gets or Sets Timezone
/// </summary>
[DataMember(Name = "timezone", EmitDefaultValue = true)]
public string Timezone { get; set; }
/// <summary>
/// Gets or Sets Currency
/// </summary>
[DataMember(Name = "currency", EmitDefaultValue = true)]
public string Currency { get; set; }
/// <summary>
/// Gets or Sets IpAddress
/// </summary>
[DataMember(Name = "ip_address", EmitDefaultValue = true)]
public string IpAddress { get; set; }
/// <summary> /// <summary>
/// Returns the string presentation of the object /// Returns the string presentation of the object
/// </summary> /// </summary>
@@ -93,11 +128,16 @@ namespace Tribufu.Generated.Model
public override string ToString() public override string ToString()
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.Append("class RegisterRequest {\n"); sb.Append("class CreateUser {\n");
sb.Append(" Uuid: ").Append(Uuid).Append("\n"); sb.Append(" Uuid: ").Append(Uuid).Append("\n");
sb.Append(" Name: ").Append(Name).Append("\n"); sb.Append(" Name: ").Append(Name).Append("\n");
sb.Append(" DisplayName: ").Append(DisplayName).Append("\n");
sb.Append(" Email: ").Append(Email).Append("\n"); sb.Append(" Email: ").Append(Email).Append("\n");
sb.Append(" Password: ").Append(Password).Append("\n"); sb.Append(" Password: ").Append(Password).Append("\n");
sb.Append(" Language: ").Append(Language).Append("\n");
sb.Append(" Timezone: ").Append(Timezone).Append("\n");
sb.Append(" Currency: ").Append(Currency).Append("\n");
sb.Append(" IpAddress: ").Append(IpAddress).Append("\n");
sb.Append("}\n"); sb.Append("}\n");
return sb.ToString(); return sb.ToString();
} }
@@ -125,9 +165,9 @@ namespace Tribufu.Generated.Model
} }
// Name (string) minLength // Name (string) minLength
if (this.Name != null && this.Name.Length < 3) if (this.Name != null && this.Name.Length < 1)
{ {
yield return new ValidationResult("Invalid value for Name, length must be greater than 3.", new [] { "Name" }); yield return new ValidationResult("Invalid value for Name, length must be greater than 1.", new [] { "Name" });
} }
if (this.Name != null) { if (this.Name != null) {
@@ -139,25 +179,43 @@ namespace Tribufu.Generated.Model
} }
} }
// DisplayName (string) maxLength
if (this.DisplayName != null && this.DisplayName.Length > 45)
{
yield return new ValidationResult("Invalid value for DisplayName, length must be less than 45.", new [] { "DisplayName" });
}
if (this.DisplayName != null) {
// DisplayName (string) pattern
Regex regexDisplayName = new Regex(@"^[a-zA-Z0-9-_ ]*$", RegexOptions.CultureInvariant);
if (!regexDisplayName.Match(this.DisplayName).Success)
{
yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for DisplayName, must match a pattern of " + regexDisplayName, new [] { "DisplayName" });
}
}
// Email (string) maxLength // Email (string) maxLength
if (this.Email != null && this.Email.Length > 255) if (this.Email != null && this.Email.Length > 255)
{ {
yield return new ValidationResult("Invalid value for Email, length must be less than 255.", new [] { "Email" }); yield return new ValidationResult("Invalid value for Email, length must be less than 255.", new [] { "Email" });
} }
if (this.Email != null) { // Language (string) maxLength
// Email (string) pattern if (this.Language != null && this.Language.Length > 5)
Regex regexEmail = new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$", RegexOptions.CultureInvariant);
if (!regexEmail.Match(this.Email).Success)
{ {
yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Email, must match a pattern of " + regexEmail, new [] { "Email" }); yield return new ValidationResult("Invalid value for Language, length must be less than 5.", new [] { "Language" });
}
} }
// Password (string) minLength // Currency (string) maxLength
if (this.Password != null && this.Password.Length < 1) if (this.Currency != null && this.Currency.Length > 3)
{ {
yield return new ValidationResult("Invalid value for Password, length must be greater than 1.", new [] { "Password" }); yield return new ValidationResult("Invalid value for Currency, length must be less than 3.", new [] { "Currency" });
}
// IpAddress (string) maxLength
if (this.IpAddress != null && this.IpAddress.Length > 255)
{
yield return new ValidationResult("Invalid value for IpAddress, length must be less than 255.", new [] { "IpAddress" });
} }
yield break; yield break;

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// CryptoViewModel /// CryptoViewModel

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Game /// Game
@@ -41,19 +41,13 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Game" /> class. /// Initializes a new instance of the <see cref="Game" /> class.
/// </summary> /// </summary>
/// <param name="gamePort">gamePort.</param> [JsonConstructorAttribute]
/// <param name="queryPort">queryPort.</param> protected Game() { }
/// <param name="rconPort">rconPort.</param> /// <summary>
/// <param name="serverCount">serverCount.</param> /// Initializes a new instance of the <see cref="Game" /> class.
/// <param name="steamAppId">steamAppId.</param> /// </summary>
/// <param name="steamServerAppId">steamServerAppId.</param>
/// <param name="enableServers">enableServers.</param>
/// <param name="rustGamedigId">rustGamedigId.</param>
/// <param name="nodeGamedigId">nodeGamedigId.</param>
/// <param name="serverConnectUrl">serverConnectUrl.</param>
/// <param name="serverTags">serverTags.</param>
/// <param name="id">id.</param> /// <param name="id">id.</param>
/// <param name="name">name.</param> /// <param name="name">name (required).</param>
/// <param name="description">description.</param> /// <param name="description">description.</param>
/// <param name="type">type.</param> /// <param name="type">type.</param>
/// <param name="organizationId">organizationId.</param> /// <param name="organizationId">organizationId.</param>
@@ -61,32 +55,25 @@ namespace Tribufu.Generated.Model
/// <param name="bannerUrl">bannerUrl.</param> /// <param name="bannerUrl">bannerUrl.</param>
/// <param name="capsuleImageUrl">capsuleImageUrl.</param> /// <param name="capsuleImageUrl">capsuleImageUrl.</param>
/// <param name="libraryImageUrl">libraryImageUrl.</param> /// <param name="libraryImageUrl">libraryImageUrl.</param>
/// <param name="parentId">parentId.</param>
/// <param name="slug">slug.</param> /// <param name="slug">slug.</param>
/// <param name="visibility">visibility.</param>
/// <param name="password">password.</param>
/// <param name="primary">primary.</param>
/// <param name="userCount">userCount.</param>
/// <param name="achievementCount">achievementCount.</param>
/// <param name="badgeCount">badgeCount.</param>
/// <param name="downloadCount">downloadCount.</param>
/// <param name="created">created.</param> /// <param name="created">created.</param>
/// <param name="updated">updated.</param> /// <param name="updated">updated.</param>
public Game(int? gamePort = default(int?), int? queryPort = default(int?), int? rconPort = default(int?), int serverCount = default(int), int? steamAppId = default(int?), int? steamServerAppId = default(int?), bool enableServers = default(bool), string rustGamedigId = default(string), string nodeGamedigId = default(string), string serverConnectUrl = default(string), string serverTags = default(string), string id = default(string), string name = default(string), string description = default(string), ApplicationType? type = default(ApplicationType?), string organizationId = default(string), string iconUrl = default(string), string bannerUrl = default(string), string capsuleImageUrl = default(string), string libraryImageUrl = default(string), string parentId = default(string), string slug = default(string), int visibility = default(int), string password = default(string), int primary = default(int), int userCount = default(int), int achievementCount = default(int), int? badgeCount = default(int?), int downloadCount = default(int), DateTime created = default(DateTime), DateTime? updated = default(DateTime?)) /// <param name="enableServers">enableServers.</param>
/// <param name="gamePort">gamePort.</param>
/// <param name="queryPort">queryPort.</param>
/// <param name="rconPort">rconPort.</param>
/// <param name="gamedigId">gamedigId.</param>
/// <param name="steamAppId">steamAppId.</param>
/// <param name="steamServerAppId">steamServerAppId.</param>
public Game(string id = default(string), string name = default(string), string description = default(string), ApplicationType? type = default(ApplicationType?), string organizationId = default(string), string iconUrl = default(string), string bannerUrl = default(string), string capsuleImageUrl = default(string), string libraryImageUrl = default(string), string slug = default(string), DateTime created = default(DateTime), DateTime? updated = default(DateTime?), bool enableServers = default(bool), int? gamePort = default(int?), int? queryPort = default(int?), int? rconPort = default(int?), string gamedigId = default(string), int? steamAppId = default(int?), int? steamServerAppId = default(int?))
{ {
this.GamePort = gamePort; // to ensure "name" is required (not null)
this.QueryPort = queryPort; if (name == null)
this.RconPort = rconPort; {
this.ServerCount = serverCount; throw new ArgumentNullException("name is a required property for Game and cannot be null");
this.SteamAppId = steamAppId; }
this.SteamServerAppId = steamServerAppId;
this.EnableServers = enableServers;
this.RustGamedigId = rustGamedigId;
this.NodeGamedigId = nodeGamedigId;
this.ServerConnectUrl = serverConnectUrl;
this.ServerTags = serverTags;
this.Id = id;
this.Name = name; this.Name = name;
this.Id = id;
this.Description = description; this.Description = description;
this.Type = type; this.Type = type;
this.OrganizationId = organizationId; this.OrganizationId = organizationId;
@@ -94,85 +81,18 @@ namespace Tribufu.Generated.Model
this.BannerUrl = bannerUrl; this.BannerUrl = bannerUrl;
this.CapsuleImageUrl = capsuleImageUrl; this.CapsuleImageUrl = capsuleImageUrl;
this.LibraryImageUrl = libraryImageUrl; this.LibraryImageUrl = libraryImageUrl;
this.ParentId = parentId;
this.Slug = slug; this.Slug = slug;
this.Visibility = visibility;
this.Password = password;
this.Primary = primary;
this.UserCount = userCount;
this.AchievementCount = achievementCount;
this.BadgeCount = badgeCount;
this.DownloadCount = downloadCount;
this.Created = created; this.Created = created;
this.Updated = updated; this.Updated = updated;
this.EnableServers = enableServers;
this.GamePort = gamePort;
this.QueryPort = queryPort;
this.RconPort = rconPort;
this.GamedigId = gamedigId;
this.SteamAppId = steamAppId;
this.SteamServerAppId = steamServerAppId;
} }
/// <summary>
/// Gets or Sets GamePort
/// </summary>
[DataMember(Name = "game_port", EmitDefaultValue = true)]
public int? GamePort { get; set; }
/// <summary>
/// Gets or Sets QueryPort
/// </summary>
[DataMember(Name = "query_port", EmitDefaultValue = true)]
public int? QueryPort { get; set; }
/// <summary>
/// Gets or Sets RconPort
/// </summary>
[DataMember(Name = "rcon_port", EmitDefaultValue = true)]
public int? RconPort { get; set; }
/// <summary>
/// Gets or Sets ServerCount
/// </summary>
[DataMember(Name = "server_count", EmitDefaultValue = false)]
public int ServerCount { get; set; }
/// <summary>
/// Gets or Sets SteamAppId
/// </summary>
[DataMember(Name = "steam_app_id", EmitDefaultValue = true)]
public int? SteamAppId { get; set; }
/// <summary>
/// Gets or Sets SteamServerAppId
/// </summary>
[DataMember(Name = "steam_server_app_id", EmitDefaultValue = true)]
public int? SteamServerAppId { get; set; }
/// <summary>
/// Gets or Sets EnableServers
/// </summary>
[DataMember(Name = "enable_servers", EmitDefaultValue = true)]
public bool EnableServers { get; set; }
/// <summary>
/// Gets or Sets RustGamedigId
/// </summary>
[DataMember(Name = "rust_gamedig_id", EmitDefaultValue = true)]
public string RustGamedigId { get; set; }
/// <summary>
/// Gets or Sets NodeGamedigId
/// </summary>
[DataMember(Name = "node_gamedig_id", EmitDefaultValue = true)]
public string NodeGamedigId { get; set; }
/// <summary>
/// Gets or Sets ServerConnectUrl
/// </summary>
[DataMember(Name = "server_connect_url", EmitDefaultValue = true)]
public string ServerConnectUrl { get; set; }
/// <summary>
/// Gets or Sets ServerTags
/// </summary>
[DataMember(Name = "server_tags", EmitDefaultValue = true)]
public string ServerTags { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Id /// Gets or Sets Id
/// </summary> /// </summary>
@@ -182,7 +102,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Name /// Gets or Sets Name
/// </summary> /// </summary>
[DataMember(Name = "name", EmitDefaultValue = true)] [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
public string Name { get; set; } public string Name { get; set; }
/// <summary> /// <summary>
@@ -221,60 +141,12 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "library_image_url", EmitDefaultValue = true)] [DataMember(Name = "library_image_url", EmitDefaultValue = true)]
public string LibraryImageUrl { get; set; } public string LibraryImageUrl { get; set; }
/// <summary>
/// Gets or Sets ParentId
/// </summary>
[DataMember(Name = "parent_id", EmitDefaultValue = true)]
public string ParentId { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Slug /// Gets or Sets Slug
/// </summary> /// </summary>
[DataMember(Name = "slug", EmitDefaultValue = true)] [DataMember(Name = "slug", EmitDefaultValue = true)]
public string Slug { get; set; } public string Slug { get; set; }
/// <summary>
/// Gets or Sets Visibility
/// </summary>
[DataMember(Name = "visibility", EmitDefaultValue = false)]
public int Visibility { get; set; }
/// <summary>
/// Gets or Sets Password
/// </summary>
[DataMember(Name = "password", EmitDefaultValue = true)]
public string Password { get; set; }
/// <summary>
/// Gets or Sets Primary
/// </summary>
[DataMember(Name = "primary", EmitDefaultValue = false)]
public int Primary { get; set; }
/// <summary>
/// Gets or Sets UserCount
/// </summary>
[DataMember(Name = "user_count", EmitDefaultValue = false)]
public int UserCount { get; set; }
/// <summary>
/// Gets or Sets AchievementCount
/// </summary>
[DataMember(Name = "achievement_count", EmitDefaultValue = false)]
public int AchievementCount { get; set; }
/// <summary>
/// Gets or Sets BadgeCount
/// </summary>
[DataMember(Name = "badge_count", EmitDefaultValue = true)]
public int? BadgeCount { get; set; }
/// <summary>
/// Gets or Sets DownloadCount
/// </summary>
[DataMember(Name = "download_count", EmitDefaultValue = false)]
public int DownloadCount { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Created /// Gets or Sets Created
/// </summary> /// </summary>
@@ -287,6 +159,48 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "updated", EmitDefaultValue = true)] [DataMember(Name = "updated", EmitDefaultValue = true)]
public DateTime? Updated { get; set; } public DateTime? Updated { get; set; }
/// <summary>
/// Gets or Sets EnableServers
/// </summary>
[DataMember(Name = "enable_servers", EmitDefaultValue = true)]
public bool EnableServers { get; set; }
/// <summary>
/// Gets or Sets GamePort
/// </summary>
[DataMember(Name = "game_port", EmitDefaultValue = true)]
public int? GamePort { get; set; }
/// <summary>
/// Gets or Sets QueryPort
/// </summary>
[DataMember(Name = "query_port", EmitDefaultValue = true)]
public int? QueryPort { get; set; }
/// <summary>
/// Gets or Sets RconPort
/// </summary>
[DataMember(Name = "rcon_port", EmitDefaultValue = true)]
public int? RconPort { get; set; }
/// <summary>
/// Gets or Sets GamedigId
/// </summary>
[DataMember(Name = "gamedig_id", EmitDefaultValue = true)]
public string GamedigId { get; set; }
/// <summary>
/// Gets or Sets SteamAppId
/// </summary>
[DataMember(Name = "steam_app_id", EmitDefaultValue = true)]
public int? SteamAppId { get; set; }
/// <summary>
/// Gets or Sets SteamServerAppId
/// </summary>
[DataMember(Name = "steam_server_app_id", EmitDefaultValue = true)]
public int? SteamServerAppId { get; set; }
/// <summary> /// <summary>
/// Returns the string presentation of the object /// Returns the string presentation of the object
/// </summary> /// </summary>
@@ -295,17 +209,6 @@ namespace Tribufu.Generated.Model
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.Append("class Game {\n"); sb.Append("class Game {\n");
sb.Append(" GamePort: ").Append(GamePort).Append("\n");
sb.Append(" QueryPort: ").Append(QueryPort).Append("\n");
sb.Append(" RconPort: ").Append(RconPort).Append("\n");
sb.Append(" ServerCount: ").Append(ServerCount).Append("\n");
sb.Append(" SteamAppId: ").Append(SteamAppId).Append("\n");
sb.Append(" SteamServerAppId: ").Append(SteamServerAppId).Append("\n");
sb.Append(" EnableServers: ").Append(EnableServers).Append("\n");
sb.Append(" RustGamedigId: ").Append(RustGamedigId).Append("\n");
sb.Append(" NodeGamedigId: ").Append(NodeGamedigId).Append("\n");
sb.Append(" ServerConnectUrl: ").Append(ServerConnectUrl).Append("\n");
sb.Append(" ServerTags: ").Append(ServerTags).Append("\n");
sb.Append(" Id: ").Append(Id).Append("\n"); sb.Append(" Id: ").Append(Id).Append("\n");
sb.Append(" Name: ").Append(Name).Append("\n"); sb.Append(" Name: ").Append(Name).Append("\n");
sb.Append(" Description: ").Append(Description).Append("\n"); sb.Append(" Description: ").Append(Description).Append("\n");
@@ -315,17 +218,16 @@ namespace Tribufu.Generated.Model
sb.Append(" BannerUrl: ").Append(BannerUrl).Append("\n"); sb.Append(" BannerUrl: ").Append(BannerUrl).Append("\n");
sb.Append(" CapsuleImageUrl: ").Append(CapsuleImageUrl).Append("\n"); sb.Append(" CapsuleImageUrl: ").Append(CapsuleImageUrl).Append("\n");
sb.Append(" LibraryImageUrl: ").Append(LibraryImageUrl).Append("\n"); sb.Append(" LibraryImageUrl: ").Append(LibraryImageUrl).Append("\n");
sb.Append(" ParentId: ").Append(ParentId).Append("\n");
sb.Append(" Slug: ").Append(Slug).Append("\n"); sb.Append(" Slug: ").Append(Slug).Append("\n");
sb.Append(" Visibility: ").Append(Visibility).Append("\n");
sb.Append(" Password: ").Append(Password).Append("\n");
sb.Append(" Primary: ").Append(Primary).Append("\n");
sb.Append(" UserCount: ").Append(UserCount).Append("\n");
sb.Append(" AchievementCount: ").Append(AchievementCount).Append("\n");
sb.Append(" BadgeCount: ").Append(BadgeCount).Append("\n");
sb.Append(" DownloadCount: ").Append(DownloadCount).Append("\n");
sb.Append(" Created: ").Append(Created).Append("\n"); sb.Append(" Created: ").Append(Created).Append("\n");
sb.Append(" Updated: ").Append(Updated).Append("\n"); sb.Append(" Updated: ").Append(Updated).Append("\n");
sb.Append(" EnableServers: ").Append(EnableServers).Append("\n");
sb.Append(" GamePort: ").Append(GamePort).Append("\n");
sb.Append(" QueryPort: ").Append(QueryPort).Append("\n");
sb.Append(" RconPort: ").Append(RconPort).Append("\n");
sb.Append(" GamedigId: ").Append(GamedigId).Append("\n");
sb.Append(" SteamAppId: ").Append(SteamAppId).Append("\n");
sb.Append(" SteamServerAppId: ").Append(SteamServerAppId).Append("\n");
sb.Append("}\n"); sb.Append("}\n");
return sb.ToString(); return sb.ToString();
} }
@@ -346,24 +248,6 @@ namespace Tribufu.Generated.Model
/// <returns>Validation Result</returns> /// <returns>Validation Result</returns>
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext) IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{ {
// RustGamedigId (string) maxLength
if (this.RustGamedigId != null && this.RustGamedigId.Length > 45)
{
yield return new ValidationResult("Invalid value for RustGamedigId, length must be less than 45.", new [] { "RustGamedigId" });
}
// NodeGamedigId (string) maxLength
if (this.NodeGamedigId != null && this.NodeGamedigId.Length > 45)
{
yield return new ValidationResult("Invalid value for NodeGamedigId, length must be less than 45.", new [] { "NodeGamedigId" });
}
// ServerConnectUrl (string) maxLength
if (this.ServerConnectUrl != null && this.ServerConnectUrl.Length > 255)
{
yield return new ValidationResult("Invalid value for ServerConnectUrl, length must be less than 255.", new [] { "ServerConnectUrl" });
}
// Name (string) maxLength // Name (string) maxLength
if (this.Name != null && this.Name.Length > 75) if (this.Name != null && this.Name.Length > 75)
{ {
@@ -394,6 +278,18 @@ namespace Tribufu.Generated.Model
yield return new ValidationResult("Invalid value for LibraryImageUrl, length must be less than 255.", new [] { "LibraryImageUrl" }); yield return new ValidationResult("Invalid value for LibraryImageUrl, length must be less than 255.", new [] { "LibraryImageUrl" });
} }
// Slug (string) maxLength
if (this.Slug != null && this.Slug.Length > 75)
{
yield return new ValidationResult("Invalid value for Slug, length must be less than 75.", new [] { "Slug" });
}
// GamedigId (string) maxLength
if (this.GamedigId != null && this.GamedigId.Length > 45)
{
yield return new ValidationResult("Invalid value for GamedigId, length must be less than 45.", new [] { "GamedigId" });
}
yield break; yield break;
} }
} }

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// GameServer /// GameServer
@@ -32,77 +32,66 @@ namespace Tribufu.Generated.Model
[DataContract(Name = "GameServer")] [DataContract(Name = "GameServer")]
public partial class GameServer : IValidatableObject public partial class GameServer : IValidatableObject
{ {
/// <summary> /// <summary>
/// Gets or Sets Status /// Initializes a new instance of the <see cref="GameServer" /> class.
/// </summary> /// </summary>
[DataMember(Name = "status", EmitDefaultValue = false)] [JsonConstructorAttribute]
public ServerStatus? Status { get; set; } protected GameServer() { }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="GameServer" /> class. /// Initializes a new instance of the <see cref="GameServer" /> class.
/// </summary> /// </summary>
/// <param name="id">id.</param> /// <param name="id">id.</param>
/// <param name="name">name.</param> /// <param name="name">name (required).</param>
/// <param name="description">description.</param> /// <param name="description">description.</param>
/// <param name="address">address.</param> /// <param name="ownerId">ownerId.</param>
/// <param name="address">address (required).</param>
/// <param name="queryPort">queryPort (required).</param>
/// <param name="gamePort">gamePort.</param> /// <param name="gamePort">gamePort.</param>
/// <param name="queryPort">queryPort.</param> /// <param name="map">map.</param>
/// <param name="varVersion">varVersion.</param>
/// <param name="gameId">gameId.</param> /// <param name="gameId">gameId.</param>
/// <param name="gameIconUrl">gameIconUrl.</param> /// <param name="gameIconUrl">gameIconUrl.</param>
/// <param name="varVersion">varVersion.</param>
/// <param name="featured">featured.</param>
/// <param name="clusterId">clusterId.</param> /// <param name="clusterId">clusterId.</param>
/// <param name="websiteUrl">websiteUrl.</param> /// <param name="websiteUrl">websiteUrl.</param>
/// <param name="bannerUrl">bannerUrl.</param> /// <param name="bannerUrl">bannerUrl.</param>
/// <param name="ownerId">ownerId.</param>
/// <param name="uptime">uptime.</param> /// <param name="uptime">uptime.</param>
/// <param name="status">status.</param>
/// <param name="ping">ping.</param>
/// <param name="map">map.</param>
/// <param name="usedSlots">usedSlots.</param>
/// <param name="maxSlots">maxSlots.</param>
/// <param name="motd">motd.</param>
/// <param name="players">players.</param>
/// <param name="lastOnline">lastOnline.</param>
/// <param name="country">country.</param> /// <param name="country">country.</param>
/// <param name="steam">steam.</param> /// <param name="steam">steam.</param>
/// <param name="discordServerId">discordServerId.</param> /// <param name="discordServerId">discordServerId.</param>
/// <param name="youtubeVideoUrl">youtubeVideoUrl.</param> /// <param name="youtubeVideoUrl">youtubeVideoUrl.</param>
/// <param name="tags">tags.</param>
/// <param name="commentCount">commentCount.</param>
/// <param name="created">created.</param> /// <param name="created">created.</param>
/// <param name="updated">updated.</param> /// <param name="updated">updated.</param>
public GameServer(string id = default(string), string name = default(string), string description = default(string), string address = default(string), int? gamePort = default(int?), int queryPort = default(int), string gameId = default(string), string gameIconUrl = default(string), string varVersion = default(string), bool featured = default(bool), string clusterId = default(string), string websiteUrl = default(string), string bannerUrl = default(string), string ownerId = default(string), double uptime = default(double), ServerStatus? status = default(ServerStatus?), int? ping = default(int?), string map = default(string), int? usedSlots = default(int?), int? maxSlots = default(int?), string motd = default(string), string players = default(string), DateTime? lastOnline = default(DateTime?), string country = default(string), bool steam = default(bool), string discordServerId = default(string), string youtubeVideoUrl = default(string), string tags = default(string), int commentCount = default(int), DateTime created = default(DateTime), DateTime? updated = default(DateTime?)) public GameServer(string id = default(string), string name = default(string), string description = default(string), string ownerId = default(string), string address = default(string), int queryPort = default(int), int? gamePort = default(int?), string map = default(string), string varVersion = default(string), string gameId = default(string), string gameIconUrl = default(string), string clusterId = default(string), string websiteUrl = default(string), string bannerUrl = default(string), double uptime = default(double), string country = default(string), bool steam = default(bool), string discordServerId = default(string), string youtubeVideoUrl = default(string), DateTime created = default(DateTime), DateTime? updated = default(DateTime?))
{ {
this.Id = id; // to ensure "name" is required (not null)
if (name == null)
{
throw new ArgumentNullException("name is a required property for GameServer and cannot be null");
}
this.Name = name; this.Name = name;
this.Description = description; // to ensure "address" is required (not null)
if (address == null)
{
throw new ArgumentNullException("address is a required property for GameServer and cannot be null");
}
this.Address = address; this.Address = address;
this.GamePort = gamePort;
this.QueryPort = queryPort; this.QueryPort = queryPort;
this.Id = id;
this.Description = description;
this.OwnerId = ownerId;
this.GamePort = gamePort;
this.Map = map;
this.VarVersion = varVersion;
this.GameId = gameId; this.GameId = gameId;
this.GameIconUrl = gameIconUrl; this.GameIconUrl = gameIconUrl;
this.VarVersion = varVersion;
this.Featured = featured;
this.ClusterId = clusterId; this.ClusterId = clusterId;
this.WebsiteUrl = websiteUrl; this.WebsiteUrl = websiteUrl;
this.BannerUrl = bannerUrl; this.BannerUrl = bannerUrl;
this.OwnerId = ownerId;
this.Uptime = uptime; this.Uptime = uptime;
this.Status = status;
this.Ping = ping;
this.Map = map;
this.UsedSlots = usedSlots;
this.MaxSlots = maxSlots;
this.Motd = motd;
this.Players = players;
this.LastOnline = lastOnline;
this.Country = country; this.Country = country;
this.Steam = steam; this.Steam = steam;
this.DiscordServerId = discordServerId; this.DiscordServerId = discordServerId;
this.YoutubeVideoUrl = youtubeVideoUrl; this.YoutubeVideoUrl = youtubeVideoUrl;
this.Tags = tags;
this.CommentCount = commentCount;
this.Created = created; this.Created = created;
this.Updated = updated; this.Updated = updated;
} }
@@ -116,7 +105,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Name /// Gets or Sets Name
/// </summary> /// </summary>
[DataMember(Name = "name", EmitDefaultValue = true)] [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
public string Name { get; set; } public string Name { get; set; }
/// <summary> /// <summary>
@@ -125,12 +114,24 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "description", EmitDefaultValue = true)] [DataMember(Name = "description", EmitDefaultValue = true)]
public string Description { get; set; } public string Description { get; set; }
/// <summary>
/// Gets or Sets OwnerId
/// </summary>
[DataMember(Name = "owner_id", EmitDefaultValue = true)]
public string OwnerId { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Address /// Gets or Sets Address
/// </summary> /// </summary>
[DataMember(Name = "address", EmitDefaultValue = true)] [DataMember(Name = "address", IsRequired = true, EmitDefaultValue = true)]
public string Address { get; set; } public string Address { get; set; }
/// <summary>
/// Gets or Sets QueryPort
/// </summary>
[DataMember(Name = "query_port", IsRequired = true, EmitDefaultValue = true)]
public int QueryPort { get; set; }
/// <summary> /// <summary>
/// Gets or Sets GamePort /// Gets or Sets GamePort
/// </summary> /// </summary>
@@ -138,10 +139,16 @@ namespace Tribufu.Generated.Model
public int? GamePort { get; set; } public int? GamePort { get; set; }
/// <summary> /// <summary>
/// Gets or Sets QueryPort /// Gets or Sets Map
/// </summary> /// </summary>
[DataMember(Name = "query_port", EmitDefaultValue = false)] [DataMember(Name = "map", EmitDefaultValue = true)]
public int QueryPort { get; set; } public string Map { get; set; }
/// <summary>
/// Gets or Sets VarVersion
/// </summary>
[DataMember(Name = "version", EmitDefaultValue = true)]
public string VarVersion { get; set; }
/// <summary> /// <summary>
/// Gets or Sets GameId /// Gets or Sets GameId
@@ -155,18 +162,6 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "game_icon_url", EmitDefaultValue = true)] [DataMember(Name = "game_icon_url", EmitDefaultValue = true)]
public string GameIconUrl { get; set; } public string GameIconUrl { get; set; }
/// <summary>
/// Gets or Sets VarVersion
/// </summary>
[DataMember(Name = "version", EmitDefaultValue = true)]
public string VarVersion { get; set; }
/// <summary>
/// Gets or Sets Featured
/// </summary>
[DataMember(Name = "featured", EmitDefaultValue = true)]
public bool Featured { get; set; }
/// <summary> /// <summary>
/// Gets or Sets ClusterId /// Gets or Sets ClusterId
/// </summary> /// </summary>
@@ -185,60 +180,12 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "banner_url", EmitDefaultValue = true)] [DataMember(Name = "banner_url", EmitDefaultValue = true)]
public string BannerUrl { get; set; } public string BannerUrl { get; set; }
/// <summary>
/// Gets or Sets OwnerId
/// </summary>
[DataMember(Name = "owner_id", EmitDefaultValue = true)]
public string OwnerId { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Uptime /// Gets or Sets Uptime
/// </summary> /// </summary>
[DataMember(Name = "uptime", EmitDefaultValue = false)] [DataMember(Name = "uptime", EmitDefaultValue = false)]
public double Uptime { get; set; } public double Uptime { get; set; }
/// <summary>
/// Gets or Sets Ping
/// </summary>
[DataMember(Name = "ping", EmitDefaultValue = true)]
public int? Ping { get; set; }
/// <summary>
/// Gets or Sets Map
/// </summary>
[DataMember(Name = "map", EmitDefaultValue = true)]
public string Map { get; set; }
/// <summary>
/// Gets or Sets UsedSlots
/// </summary>
[DataMember(Name = "used_slots", EmitDefaultValue = true)]
public int? UsedSlots { get; set; }
/// <summary>
/// Gets or Sets MaxSlots
/// </summary>
[DataMember(Name = "max_slots", EmitDefaultValue = true)]
public int? MaxSlots { get; set; }
/// <summary>
/// Gets or Sets Motd
/// </summary>
[DataMember(Name = "motd", EmitDefaultValue = true)]
public string Motd { get; set; }
/// <summary>
/// Gets or Sets Players
/// </summary>
[DataMember(Name = "players", EmitDefaultValue = true)]
public string Players { get; set; }
/// <summary>
/// Gets or Sets LastOnline
/// </summary>
[DataMember(Name = "last_online", EmitDefaultValue = true)]
public DateTime? LastOnline { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Country /// Gets or Sets Country
/// </summary> /// </summary>
@@ -263,18 +210,6 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "youtube_video_url", EmitDefaultValue = true)] [DataMember(Name = "youtube_video_url", EmitDefaultValue = true)]
public string YoutubeVideoUrl { get; set; } public string YoutubeVideoUrl { get; set; }
/// <summary>
/// Gets or Sets Tags
/// </summary>
[DataMember(Name = "tags", EmitDefaultValue = true)]
public string Tags { get; set; }
/// <summary>
/// Gets or Sets CommentCount
/// </summary>
[DataMember(Name = "comment_count", EmitDefaultValue = false)]
public int CommentCount { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Created /// Gets or Sets Created
/// </summary> /// </summary>
@@ -298,32 +233,22 @@ namespace Tribufu.Generated.Model
sb.Append(" Id: ").Append(Id).Append("\n"); sb.Append(" Id: ").Append(Id).Append("\n");
sb.Append(" Name: ").Append(Name).Append("\n"); sb.Append(" Name: ").Append(Name).Append("\n");
sb.Append(" Description: ").Append(Description).Append("\n"); sb.Append(" Description: ").Append(Description).Append("\n");
sb.Append(" OwnerId: ").Append(OwnerId).Append("\n");
sb.Append(" Address: ").Append(Address).Append("\n"); sb.Append(" Address: ").Append(Address).Append("\n");
sb.Append(" GamePort: ").Append(GamePort).Append("\n");
sb.Append(" QueryPort: ").Append(QueryPort).Append("\n"); sb.Append(" QueryPort: ").Append(QueryPort).Append("\n");
sb.Append(" GamePort: ").Append(GamePort).Append("\n");
sb.Append(" Map: ").Append(Map).Append("\n");
sb.Append(" VarVersion: ").Append(VarVersion).Append("\n");
sb.Append(" GameId: ").Append(GameId).Append("\n"); sb.Append(" GameId: ").Append(GameId).Append("\n");
sb.Append(" GameIconUrl: ").Append(GameIconUrl).Append("\n"); sb.Append(" GameIconUrl: ").Append(GameIconUrl).Append("\n");
sb.Append(" VarVersion: ").Append(VarVersion).Append("\n");
sb.Append(" Featured: ").Append(Featured).Append("\n");
sb.Append(" ClusterId: ").Append(ClusterId).Append("\n"); sb.Append(" ClusterId: ").Append(ClusterId).Append("\n");
sb.Append(" WebsiteUrl: ").Append(WebsiteUrl).Append("\n"); sb.Append(" WebsiteUrl: ").Append(WebsiteUrl).Append("\n");
sb.Append(" BannerUrl: ").Append(BannerUrl).Append("\n"); sb.Append(" BannerUrl: ").Append(BannerUrl).Append("\n");
sb.Append(" OwnerId: ").Append(OwnerId).Append("\n");
sb.Append(" Uptime: ").Append(Uptime).Append("\n"); sb.Append(" Uptime: ").Append(Uptime).Append("\n");
sb.Append(" Status: ").Append(Status).Append("\n");
sb.Append(" Ping: ").Append(Ping).Append("\n");
sb.Append(" Map: ").Append(Map).Append("\n");
sb.Append(" UsedSlots: ").Append(UsedSlots).Append("\n");
sb.Append(" MaxSlots: ").Append(MaxSlots).Append("\n");
sb.Append(" Motd: ").Append(Motd).Append("\n");
sb.Append(" Players: ").Append(Players).Append("\n");
sb.Append(" LastOnline: ").Append(LastOnline).Append("\n");
sb.Append(" Country: ").Append(Country).Append("\n"); sb.Append(" Country: ").Append(Country).Append("\n");
sb.Append(" Steam: ").Append(Steam).Append("\n"); sb.Append(" Steam: ").Append(Steam).Append("\n");
sb.Append(" DiscordServerId: ").Append(DiscordServerId).Append("\n"); sb.Append(" DiscordServerId: ").Append(DiscordServerId).Append("\n");
sb.Append(" YoutubeVideoUrl: ").Append(YoutubeVideoUrl).Append("\n"); sb.Append(" YoutubeVideoUrl: ").Append(YoutubeVideoUrl).Append("\n");
sb.Append(" Tags: ").Append(Tags).Append("\n");
sb.Append(" CommentCount: ").Append(CommentCount).Append("\n");
sb.Append(" Created: ").Append(Created).Append("\n"); sb.Append(" Created: ").Append(Created).Append("\n");
sb.Append(" Updated: ").Append(Updated).Append("\n"); sb.Append(" Updated: ").Append(Updated).Append("\n");
sb.Append("}\n"); sb.Append("}\n");
@@ -358,6 +283,12 @@ namespace Tribufu.Generated.Model
yield return new ValidationResult("Invalid value for Address, length must be less than 255.", new [] { "Address" }); yield return new ValidationResult("Invalid value for Address, length must be less than 255.", new [] { "Address" });
} }
// Map (string) maxLength
if (this.Map != null && this.Map.Length > 255)
{
yield return new ValidationResult("Invalid value for Map, length must be less than 255.", new [] { "Map" });
}
// VarVersion (string) maxLength // VarVersion (string) maxLength
if (this.VarVersion != null && this.VarVersion.Length > 45) if (this.VarVersion != null && this.VarVersion.Length > 45)
{ {
@@ -376,18 +307,6 @@ namespace Tribufu.Generated.Model
yield return new ValidationResult("Invalid value for BannerUrl, length must be less than 255.", new [] { "BannerUrl" }); yield return new ValidationResult("Invalid value for BannerUrl, length must be less than 255.", new [] { "BannerUrl" });
} }
// Map (string) maxLength
if (this.Map != null && this.Map.Length > 45)
{
yield return new ValidationResult("Invalid value for Map, length must be less than 45.", new [] { "Map" });
}
// Motd (string) maxLength
if (this.Motd != null && this.Motd.Length > 255)
{
yield return new ValidationResult("Invalid value for Motd, length must be less than 255.", new [] { "Motd" });
}
// Country (string) maxLength // Country (string) maxLength
if (this.Country != null && this.Country.Length > 2) if (this.Country != null && this.Country.Length > 2)
{ {

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// GameServerCluster /// GameServerCluster
@@ -32,11 +32,16 @@ namespace Tribufu.Generated.Model
[DataContract(Name = "GameServerCluster")] [DataContract(Name = "GameServerCluster")]
public partial class GameServerCluster : IValidatableObject public partial class GameServerCluster : IValidatableObject
{ {
/// <summary>
/// Initializes a new instance of the <see cref="GameServerCluster" /> class.
/// </summary>
[JsonConstructorAttribute]
protected GameServerCluster() { }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="GameServerCluster" /> class. /// Initializes a new instance of the <see cref="GameServerCluster" /> class.
/// </summary> /// </summary>
/// <param name="id">id.</param> /// <param name="id">id.</param>
/// <param name="name">name.</param> /// <param name="name">name (required).</param>
/// <param name="description">description.</param> /// <param name="description">description.</param>
/// <param name="gameId">gameId.</param> /// <param name="gameId">gameId.</param>
/// <param name="websiteUrl">websiteUrl.</param> /// <param name="websiteUrl">websiteUrl.</param>
@@ -51,8 +56,13 @@ namespace Tribufu.Generated.Model
/// <param name="updated">updated.</param> /// <param name="updated">updated.</param>
public GameServerCluster(string id = default(string), string name = default(string), string description = default(string), string gameId = default(string), string websiteUrl = default(string), string bannerUrl = default(string), string ownerId = default(string), string discordServerId = default(string), string youtubeVideoUrl = default(string), string tags = default(string), int commentCount = default(int), int serverCount = default(int), DateTime created = default(DateTime), DateTime? updated = default(DateTime?)) public GameServerCluster(string id = default(string), string name = default(string), string description = default(string), string gameId = default(string), string websiteUrl = default(string), string bannerUrl = default(string), string ownerId = default(string), string discordServerId = default(string), string youtubeVideoUrl = default(string), string tags = default(string), int commentCount = default(int), int serverCount = default(int), DateTime created = default(DateTime), DateTime? updated = default(DateTime?))
{ {
this.Id = id; // to ensure "name" is required (not null)
if (name == null)
{
throw new ArgumentNullException("name is a required property for GameServerCluster and cannot be null");
}
this.Name = name; this.Name = name;
this.Id = id;
this.Description = description; this.Description = description;
this.GameId = gameId; this.GameId = gameId;
this.WebsiteUrl = websiteUrl; this.WebsiteUrl = websiteUrl;
@@ -76,7 +86,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Name /// Gets or Sets Name
/// </summary> /// </summary>
[DataMember(Name = "name", EmitDefaultValue = true)] [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
public string Name { get; set; } public string Name { get; set; }
/// <summary> /// <summary>

View File

@@ -0,0 +1,152 @@
/*
* Tribufu API
*
* API to access Tribufu services.
*
* The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Model
{
/// <summary>
/// GameServerQuery
/// </summary>
[DataContract(Name = "GameServerQuery")]
public partial class GameServerQuery : IValidatableObject
{
/// <summary>
/// Gets or Sets Status
/// </summary>
[DataMember(Name = "status", EmitDefaultValue = false)]
public GameServerStatus? Status { get; set; }
/// <summary>
/// Initializes a new instance of the <see cref="GameServerQuery" /> class.
/// </summary>
/// <param name="id">id.</param>
/// <param name="serverId">serverId.</param>
/// <param name="status">status.</param>
/// <param name="ping">ping.</param>
/// <param name="currentPlayers">currentPlayers.</param>
/// <param name="maxPlayers">maxPlayers.</param>
/// <param name="motd">motd.</param>
/// <param name="created">created.</param>
public GameServerQuery(string id = default(string), string serverId = default(string), GameServerStatus? status = default(GameServerStatus?), int ping = default(int), int currentPlayers = default(int), int maxPlayers = default(int), string motd = default(string), DateTime created = default(DateTime))
{
this.Id = id;
this.ServerId = serverId;
this.Status = status;
this.Ping = ping;
this.CurrentPlayers = currentPlayers;
this.MaxPlayers = maxPlayers;
this.Motd = motd;
this.Created = created;
}
/// <summary>
/// Gets or Sets Id
/// </summary>
[DataMember(Name = "id", EmitDefaultValue = false)]
public string Id { get; set; }
/// <summary>
/// Gets or Sets ServerId
/// </summary>
[DataMember(Name = "server_id", EmitDefaultValue = false)]
public string ServerId { get; set; }
/// <summary>
/// Gets or Sets Ping
/// </summary>
[DataMember(Name = "ping", EmitDefaultValue = false)]
public int Ping { get; set; }
/// <summary>
/// Gets or Sets CurrentPlayers
/// </summary>
[DataMember(Name = "current_players", EmitDefaultValue = false)]
public int CurrentPlayers { get; set; }
/// <summary>
/// Gets or Sets MaxPlayers
/// </summary>
[DataMember(Name = "max_players", EmitDefaultValue = false)]
public int MaxPlayers { get; set; }
/// <summary>
/// Gets or Sets Motd
/// </summary>
[DataMember(Name = "motd", EmitDefaultValue = true)]
public string Motd { get; set; }
/// <summary>
/// Gets or Sets Created
/// </summary>
[DataMember(Name = "created", EmitDefaultValue = false)]
public DateTime Created { get; set; }
/// <summary>
/// Returns the string presentation of the object
/// </summary>
/// <returns>String presentation of the object</returns>
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append("class GameServerQuery {\n");
sb.Append(" Id: ").Append(Id).Append("\n");
sb.Append(" ServerId: ").Append(ServerId).Append("\n");
sb.Append(" Status: ").Append(Status).Append("\n");
sb.Append(" Ping: ").Append(Ping).Append("\n");
sb.Append(" CurrentPlayers: ").Append(CurrentPlayers).Append("\n");
sb.Append(" MaxPlayers: ").Append(MaxPlayers).Append("\n");
sb.Append(" Motd: ").Append(Motd).Append("\n");
sb.Append(" Created: ").Append(Created).Append("\n");
sb.Append("}\n");
return sb.ToString();
}
/// <summary>
/// Returns the JSON string presentation of the object
/// </summary>
/// <returns>JSON string presentation of the object</returns>
public virtual string ToJson()
{
return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
}
/// <summary>
/// To validate all properties of the instance
/// </summary>
/// <param name="validationContext">Validation context</param>
/// <returns>Validation Result</returns>
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
// Motd (string) maxLength
if (this.Motd != null && this.Motd.Length > 255)
{
yield return new ValidationResult("Invalid value for Motd, length must be less than 255.", new [] { "Motd" });
}
yield break;
}
}
}

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,15 +22,15 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Defines ServerStatus /// Defines GameServerStatus
/// </summary> /// </summary>
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public enum ServerStatus public enum GameServerStatus
{ {
/// <summary> /// <summary>
/// Enum Unknown for value: unknown /// Enum Unknown for value: unknown

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Defines GrantType /// Defines GrantType

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Group /// Group
@@ -32,12 +32,17 @@ namespace Tribufu.Generated.Model
[DataContract(Name = "Group")] [DataContract(Name = "Group")]
public partial class Group : IValidatableObject public partial class Group : IValidatableObject
{ {
/// <summary>
/// Initializes a new instance of the <see cref="Group" /> class.
/// </summary>
[JsonConstructorAttribute]
protected Group() { }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Group" /> class. /// Initializes a new instance of the <see cref="Group" /> class.
/// </summary> /// </summary>
/// <param name="id">id.</param> /// <param name="id">id.</param>
/// <param name="uuid">uuid.</param> /// <param name="uuid">uuid.</param>
/// <param name="name">name.</param> /// <param name="name">name (required).</param>
/// <param name="tag">tag.</param> /// <param name="tag">tag.</param>
/// <param name="description">description.</param> /// <param name="description">description.</param>
/// <param name="type">type.</param> /// <param name="type">type.</param>
@@ -53,9 +58,14 @@ namespace Tribufu.Generated.Model
/// <param name="updated">updated.</param> /// <param name="updated">updated.</param>
public Group(string id = default(string), Guid uuid = default(Guid), string name = default(string), string tag = default(string), string description = default(string), int type = default(int), int privacy = default(int), string ownerId = default(string), bool verified = default(bool), string photoUrl = default(string), string bannerUrl = default(string), int memberCount = default(int), int followerCount = default(int), int viewCount = default(int), DateTime created = default(DateTime), DateTime? updated = default(DateTime?)) public Group(string id = default(string), Guid uuid = default(Guid), string name = default(string), string tag = default(string), string description = default(string), int type = default(int), int privacy = default(int), string ownerId = default(string), bool verified = default(bool), string photoUrl = default(string), string bannerUrl = default(string), int memberCount = default(int), int followerCount = default(int), int viewCount = default(int), DateTime created = default(DateTime), DateTime? updated = default(DateTime?))
{ {
// to ensure "name" is required (not null)
if (name == null)
{
throw new ArgumentNullException("name is a required property for Group and cannot be null");
}
this.Name = name;
this.Id = id; this.Id = id;
this.Uuid = uuid; this.Uuid = uuid;
this.Name = name;
this.Tag = tag; this.Tag = tag;
this.Description = description; this.Description = description;
this.Type = type; this.Type = type;
@@ -86,7 +96,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Name /// Gets or Sets Name
/// </summary> /// </summary>
[DataMember(Name = "name", EmitDefaultValue = true)] [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
public string Name { get; set; } public string Name { get; set; }
/// <summary> /// <summary>
@@ -211,6 +221,12 @@ namespace Tribufu.Generated.Model
/// <returns>Validation Result</returns> /// <returns>Validation Result</returns>
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext) IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{ {
// Name (string) maxLength
if (this.Name != null && this.Name.Length > 75)
{
yield return new ValidationResult("Invalid value for Name, length must be less than 75.", new [] { "Name" });
}
yield break; yield break;
} }
} }

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,28 +22,38 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// GroupGame /// GroupApplication
/// </summary> /// </summary>
[DataContract(Name = "GroupGame")] [DataContract(Name = "GroupApplication")]
public partial class GroupGame : IValidatableObject public partial class GroupApplication : IValidatableObject
{ {
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="GroupGame" /> class. /// Initializes a new instance of the <see cref="GroupApplication" /> class.
/// </summary> /// </summary>
/// <param name="groupId">groupId.</param> [JsonConstructorAttribute]
protected GroupApplication() { }
/// <summary>
/// Initializes a new instance of the <see cref="GroupApplication" /> class.
/// </summary>
/// <param name="groupId">groupId (required).</param>
/// <param name="group">group.</param> /// <param name="group">group.</param>
/// <param name="applicationId">applicationId.</param> /// <param name="applicationId">applicationId.</param>
/// <param name="application">application.</param> /// <param name="application">application.</param>
/// <param name="stats">stats.</param> /// <param name="stats">stats.</param>
/// <param name="acquired">acquired.</param> /// <param name="acquired">acquired.</param>
/// <param name="lastUsed">lastUsed.</param> /// <param name="lastUsed">lastUsed.</param>
public GroupGame(string groupId = default(string), Group group = default(Group), string applicationId = default(string), Application application = default(Application), Object stats = default(Object), DateTime acquired = default(DateTime), DateTime? lastUsed = default(DateTime?)) public GroupApplication(string groupId = default(string), Group group = default(Group), string applicationId = default(string), Application application = default(Application), Object stats = default(Object), DateTime acquired = default(DateTime), DateTime? lastUsed = default(DateTime?))
{ {
// to ensure "groupId" is required (not null)
if (groupId == null)
{
throw new ArgumentNullException("groupId is a required property for GroupApplication and cannot be null");
}
this.GroupId = groupId; this.GroupId = groupId;
this.Group = group; this.Group = group;
this.ApplicationId = applicationId; this.ApplicationId = applicationId;
@@ -56,7 +66,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets GroupId /// Gets or Sets GroupId
/// </summary> /// </summary>
[DataMember(Name = "group_id", EmitDefaultValue = false)] [DataMember(Name = "group_id", IsRequired = true, EmitDefaultValue = true)]
public string GroupId { get; set; } public string GroupId { get; set; }
/// <summary> /// <summary>
@@ -102,7 +112,7 @@ namespace Tribufu.Generated.Model
public override string ToString() public override string ToString()
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.Append("class GroupGame {\n"); sb.Append("class GroupApplication {\n");
sb.Append(" GroupId: ").Append(GroupId).Append("\n"); sb.Append(" GroupId: ").Append(GroupId).Append("\n");
sb.Append(" Group: ").Append(Group).Append("\n"); sb.Append(" Group: ").Append(Group).Append("\n");
sb.Append(" ApplicationId: ").Append(ApplicationId).Append("\n"); sb.Append(" ApplicationId: ").Append(ApplicationId).Append("\n");

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// GroupMember /// GroupMember

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Defines GroupRank /// Defines GroupRank

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// HashViewModel /// HashViewModel
@@ -35,16 +35,26 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="HashViewModel" /> class. /// Initializes a new instance of the <see cref="HashViewModel" /> class.
/// </summary> /// </summary>
/// <param name="value">value.</param> [JsonConstructorAttribute]
protected HashViewModel() { }
/// <summary>
/// Initializes a new instance of the <see cref="HashViewModel" /> class.
/// </summary>
/// <param name="value">value (required).</param>
public HashViewModel(string value = default(string)) public HashViewModel(string value = default(string))
{ {
// to ensure "value" is required (not null)
if (value == null)
{
throw new ArgumentNullException("value is a required property for HashViewModel and cannot be null");
}
this.Value = value; this.Value = value;
} }
/// <summary> /// <summary>
/// Gets or Sets Value /// Gets or Sets Value
/// </summary> /// </summary>
[DataMember(Name = "value", EmitDefaultValue = true)] [DataMember(Name = "value", IsRequired = true, EmitDefaultValue = true)]
public string Value { get; set; } public string Value { get; set; }
/// <summary> /// <summary>

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// IntrospectRequest /// IntrospectRequest
@@ -36,15 +36,25 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets TokenTypeHint /// Gets or Sets TokenTypeHint
/// </summary> /// </summary>
[DataMember(Name = "token_type_hint", EmitDefaultValue = false)] [DataMember(Name = "token_type_hint", IsRequired = true, EmitDefaultValue = true)]
public TokenHintType? TokenTypeHint { get; set; } public TokenHintType TokenTypeHint { get; set; }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="IntrospectRequest" /> class. /// Initializes a new instance of the <see cref="IntrospectRequest" /> class.
/// </summary> /// </summary>
/// <param name="token">token.</param> [JsonConstructorAttribute]
/// <param name="tokenTypeHint">tokenTypeHint.</param> protected IntrospectRequest() { }
public IntrospectRequest(string token = default(string), TokenHintType? tokenTypeHint = default(TokenHintType?)) /// <summary>
/// Initializes a new instance of the <see cref="IntrospectRequest" /> class.
/// </summary>
/// <param name="token">token (required).</param>
/// <param name="tokenTypeHint">tokenTypeHint (required).</param>
public IntrospectRequest(string token = default(string), TokenHintType tokenTypeHint = default(TokenHintType))
{ {
// to ensure "token" is required (not null)
if (token == null)
{
throw new ArgumentNullException("token is a required property for IntrospectRequest and cannot be null");
}
this.Token = token; this.Token = token;
this.TokenTypeHint = tokenTypeHint; this.TokenTypeHint = tokenTypeHint;
} }
@@ -52,7 +62,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Token /// Gets or Sets Token
/// </summary> /// </summary>
[DataMember(Name = "token", EmitDefaultValue = true)] [DataMember(Name = "token", IsRequired = true, EmitDefaultValue = true)]
public string Token { get; set; } public string Token { get; set; }
/// <summary> /// <summary>

View File

@@ -0,0 +1,182 @@
/*
* Tribufu API
*
* API to access Tribufu services.
*
* The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Model
{
/// <summary>
/// IntrospectResponse
/// </summary>
[DataContract(Name = "IntrospectResponse")]
public partial class IntrospectResponse : IValidatableObject
{
/// <summary>
/// Initializes a new instance of the <see cref="IntrospectResponse" /> class.
/// </summary>
/// <param name="jti">jti.</param>
/// <param name="active">active.</param>
/// <param name="tokenType">tokenType.</param>
/// <param name="clientId">clientId.</param>
/// <param name="sub">sub.</param>
/// <param name="username">username.</param>
/// <param name="scope">scope.</param>
/// <param name="iss">iss.</param>
/// <param name="aud">aud.</param>
/// <param name="iat">iat.</param>
/// <param name="exp">exp.</param>
/// <param name="nbf">nbf.</param>
public IntrospectResponse(string jti = default(string), bool active = default(bool), string tokenType = default(string), string clientId = default(string), string sub = default(string), string username = default(string), string scope = default(string), string iss = default(string), string aud = default(string), long? iat = default(long?), long? exp = default(long?), long? nbf = default(long?))
{
this.Jti = jti;
this.Active = active;
this.TokenType = tokenType;
this.ClientId = clientId;
this.Sub = sub;
this.Username = username;
this.Scope = scope;
this.Iss = iss;
this.Aud = aud;
this.Iat = iat;
this.Exp = exp;
this.Nbf = nbf;
}
/// <summary>
/// Gets or Sets Jti
/// </summary>
[DataMember(Name = "jti", EmitDefaultValue = true)]
public string Jti { get; set; }
/// <summary>
/// Gets or Sets Active
/// </summary>
[DataMember(Name = "active", EmitDefaultValue = true)]
public bool Active { get; set; }
/// <summary>
/// Gets or Sets TokenType
/// </summary>
[DataMember(Name = "token_type", EmitDefaultValue = true)]
public string TokenType { get; set; }
/// <summary>
/// Gets or Sets ClientId
/// </summary>
[DataMember(Name = "client_id", EmitDefaultValue = true)]
public string ClientId { get; set; }
/// <summary>
/// Gets or Sets Sub
/// </summary>
[DataMember(Name = "sub", EmitDefaultValue = true)]
public string Sub { get; set; }
/// <summary>
/// Gets or Sets Username
/// </summary>
[DataMember(Name = "username", EmitDefaultValue = true)]
public string Username { get; set; }
/// <summary>
/// Gets or Sets Scope
/// </summary>
[DataMember(Name = "scope", EmitDefaultValue = true)]
public string Scope { get; set; }
/// <summary>
/// Gets or Sets Iss
/// </summary>
[DataMember(Name = "iss", EmitDefaultValue = true)]
public string Iss { get; set; }
/// <summary>
/// Gets or Sets Aud
/// </summary>
[DataMember(Name = "aud", EmitDefaultValue = true)]
public string Aud { get; set; }
/// <summary>
/// Gets or Sets Iat
/// </summary>
[DataMember(Name = "iat", EmitDefaultValue = true)]
public long? Iat { get; set; }
/// <summary>
/// Gets or Sets Exp
/// </summary>
[DataMember(Name = "exp", EmitDefaultValue = true)]
public long? Exp { get; set; }
/// <summary>
/// Gets or Sets Nbf
/// </summary>
[DataMember(Name = "nbf", EmitDefaultValue = true)]
public long? Nbf { get; set; }
/// <summary>
/// Returns the string presentation of the object
/// </summary>
/// <returns>String presentation of the object</returns>
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append("class IntrospectResponse {\n");
sb.Append(" Jti: ").Append(Jti).Append("\n");
sb.Append(" Active: ").Append(Active).Append("\n");
sb.Append(" TokenType: ").Append(TokenType).Append("\n");
sb.Append(" ClientId: ").Append(ClientId).Append("\n");
sb.Append(" Sub: ").Append(Sub).Append("\n");
sb.Append(" Username: ").Append(Username).Append("\n");
sb.Append(" Scope: ").Append(Scope).Append("\n");
sb.Append(" Iss: ").Append(Iss).Append("\n");
sb.Append(" Aud: ").Append(Aud).Append("\n");
sb.Append(" Iat: ").Append(Iat).Append("\n");
sb.Append(" Exp: ").Append(Exp).Append("\n");
sb.Append(" Nbf: ").Append(Nbf).Append("\n");
sb.Append("}\n");
return sb.ToString();
}
/// <summary>
/// Returns the JSON string presentation of the object
/// </summary>
/// <returns>JSON string presentation of the object</returns>
public virtual string ToJson()
{
return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
}
/// <summary>
/// To validate all properties of the instance
/// </summary>
/// <param name="validationContext">Validation context</param>
/// <returns>Validation Result</returns>
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
yield break;
}
}
}

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// IpAddress /// IpAddress
@@ -39,11 +39,12 @@ namespace Tribufu.Generated.Model
/// <param name="varVersion">varVersion.</param> /// <param name="varVersion">varVersion.</param>
/// <param name="network">network.</param> /// <param name="network">network.</param>
/// <param name="reserved">reserved.</param> /// <param name="reserved">reserved.</param>
/// <param name="banned">banned.</param>
/// <param name="asn">asn.</param> /// <param name="asn">asn.</param>
/// <param name="isp">isp.</param> /// <param name="isp">isp.</param>
/// <param name="continent">continent.</param> /// <param name="continent">continent.</param>
/// <param name="country">country.</param> /// <param name="country">country.</param>
/// <param name="region">region.</param> /// <param name="province">province.</param>
/// <param name="city">city.</param> /// <param name="city">city.</param>
/// <param name="postalCode">postalCode.</param> /// <param name="postalCode">postalCode.</param>
/// <param name="callingCode">callingCode.</param> /// <param name="callingCode">callingCode.</param>
@@ -53,17 +54,18 @@ namespace Tribufu.Generated.Model
/// <param name="currency">currency.</param> /// <param name="currency">currency.</param>
/// <param name="latitude">latitude.</param> /// <param name="latitude">latitude.</param>
/// <param name="longitude">longitude.</param> /// <param name="longitude">longitude.</param>
public IpAddress(string address = default(string), int varVersion = default(int), string network = default(string), bool reserved = default(bool), string asn = default(string), string isp = default(string), string continent = default(string), string country = default(string), string region = default(string), string city = default(string), string postalCode = default(string), string callingCode = default(string), string tld = default(string), string language = default(string), string timezone = default(string), string currency = default(string), float? latitude = default(float?), float? longitude = default(float?)) public IpAddress(string address = default(string), int varVersion = default(int), string network = default(string), bool reserved = default(bool), bool banned = default(bool), string asn = default(string), string isp = default(string), string continent = default(string), string country = default(string), string province = default(string), string city = default(string), string postalCode = default(string), string callingCode = default(string), string tld = default(string), string language = default(string), string timezone = default(string), string currency = default(string), float? latitude = default(float?), float? longitude = default(float?))
{ {
this.Address = address; this.Address = address;
this.VarVersion = varVersion; this.VarVersion = varVersion;
this.Network = network; this.Network = network;
this.Reserved = reserved; this.Reserved = reserved;
this.Banned = banned;
this.Asn = asn; this.Asn = asn;
this.Isp = isp; this.Isp = isp;
this.Continent = continent; this.Continent = continent;
this.Country = country; this.Country = country;
this.Region = region; this.Province = province;
this.City = city; this.City = city;
this.PostalCode = postalCode; this.PostalCode = postalCode;
this.CallingCode = callingCode; this.CallingCode = callingCode;
@@ -99,6 +101,12 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "reserved", EmitDefaultValue = true)] [DataMember(Name = "reserved", EmitDefaultValue = true)]
public bool Reserved { get; set; } public bool Reserved { get; set; }
/// <summary>
/// Gets or Sets Banned
/// </summary>
[DataMember(Name = "banned", EmitDefaultValue = true)]
public bool Banned { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Asn /// Gets or Sets Asn
/// </summary> /// </summary>
@@ -124,10 +132,10 @@ namespace Tribufu.Generated.Model
public string Country { get; set; } public string Country { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Region /// Gets or Sets Province
/// </summary> /// </summary>
[DataMember(Name = "region", EmitDefaultValue = true)] [DataMember(Name = "province", EmitDefaultValue = true)]
public string Region { get; set; } public string Province { get; set; }
/// <summary> /// <summary>
/// Gets or Sets City /// Gets or Sets City
@@ -195,11 +203,12 @@ namespace Tribufu.Generated.Model
sb.Append(" VarVersion: ").Append(VarVersion).Append("\n"); sb.Append(" VarVersion: ").Append(VarVersion).Append("\n");
sb.Append(" Network: ").Append(Network).Append("\n"); sb.Append(" Network: ").Append(Network).Append("\n");
sb.Append(" Reserved: ").Append(Reserved).Append("\n"); sb.Append(" Reserved: ").Append(Reserved).Append("\n");
sb.Append(" Banned: ").Append(Banned).Append("\n");
sb.Append(" Asn: ").Append(Asn).Append("\n"); sb.Append(" Asn: ").Append(Asn).Append("\n");
sb.Append(" Isp: ").Append(Isp).Append("\n"); sb.Append(" Isp: ").Append(Isp).Append("\n");
sb.Append(" Continent: ").Append(Continent).Append("\n"); sb.Append(" Continent: ").Append(Continent).Append("\n");
sb.Append(" Country: ").Append(Country).Append("\n"); sb.Append(" Country: ").Append(Country).Append("\n");
sb.Append(" Region: ").Append(Region).Append("\n"); sb.Append(" Province: ").Append(Province).Append("\n");
sb.Append(" City: ").Append(City).Append("\n"); sb.Append(" City: ").Append(City).Append("\n");
sb.Append(" PostalCode: ").Append(PostalCode).Append("\n"); sb.Append(" PostalCode: ").Append(PostalCode).Append("\n");
sb.Append(" CallingCode: ").Append(CallingCode).Append("\n"); sb.Append(" CallingCode: ").Append(CallingCode).Append("\n");
@@ -265,10 +274,10 @@ namespace Tribufu.Generated.Model
yield return new ValidationResult("Invalid value for Country, length must be less than 2.", new [] { "Country" }); yield return new ValidationResult("Invalid value for Country, length must be less than 2.", new [] { "Country" });
} }
// Region (string) maxLength // Province (string) maxLength
if (this.Region != null && this.Region.Length > 255) if (this.Province != null && this.Province.Length > 255)
{ {
yield return new ValidationResult("Invalid value for Region, length must be less than 255.", new [] { "Region" }); yield return new ValidationResult("Invalid value for Province, length must be less than 255.", new [] { "Province" });
} }
// City (string) maxLength // City (string) maxLength

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// LeaderboardItem /// LeaderboardItem

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Defines LeaderboardOrder /// Defines LeaderboardOrder

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Defines LoginProvider /// Defines LoginProvider

View File

@@ -0,0 +1,225 @@
/*
* Tribufu API
*
* API to access Tribufu services.
*
* The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Model
{
/// <summary>
/// ModelClient
/// </summary>
[DataContract(Name = "varClient")]
public partial class ModelClient : IValidatableObject
{
/// <summary>
/// Gets or Sets Type
/// </summary>
[DataMember(Name = "type", EmitDefaultValue = false)]
public ClientType? Type { get; set; }
/// <summary>
/// Initializes a new instance of the <see cref="ModelClient" /> class.
/// </summary>
[JsonConstructorAttribute]
protected ModelClient() { }
/// <summary>
/// Initializes a new instance of the <see cref="ModelClient" /> class.
/// </summary>
/// <param name="id">id.</param>
/// <param name="name">name (required).</param>
/// <param name="type">type.</param>
/// <param name="organizationId">organizationId.</param>
/// <param name="trusted">trusted.</param>
/// <param name="websiteUrl">websiteUrl.</param>
/// <param name="photoUrl">photoUrl.</param>
/// <param name="backgroundUrl">backgroundUrl.</param>
/// <param name="redirects">redirects.</param>
/// <param name="scopes">scopes.</param>
/// <param name="created">created.</param>
/// <param name="updated">updated.</param>
public ModelClient(string id = default(string), string name = default(string), ClientType? type = default(ClientType?), string organizationId = default(string), bool trusted = default(bool), string websiteUrl = default(string), string photoUrl = default(string), string backgroundUrl = default(string), string redirects = default(string), string scopes = default(string), DateTime created = default(DateTime), DateTime? updated = default(DateTime?))
{
// to ensure "name" is required (not null)
if (name == null)
{
throw new ArgumentNullException("name is a required property for ModelClient and cannot be null");
}
this.Name = name;
this.Id = id;
this.Type = type;
this.OrganizationId = organizationId;
this.Trusted = trusted;
this.WebsiteUrl = websiteUrl;
this.PhotoUrl = photoUrl;
this.BackgroundUrl = backgroundUrl;
this.Redirects = redirects;
this.Scopes = scopes;
this.Created = created;
this.Updated = updated;
}
/// <summary>
/// Gets or Sets Id
/// </summary>
[DataMember(Name = "id", EmitDefaultValue = false)]
public string Id { get; set; }
/// <summary>
/// Gets or Sets Name
/// </summary>
[DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
public string Name { get; set; }
/// <summary>
/// Gets or Sets OrganizationId
/// </summary>
[DataMember(Name = "organization_id", EmitDefaultValue = false)]
public string OrganizationId { get; set; }
/// <summary>
/// Gets or Sets Trusted
/// </summary>
[DataMember(Name = "trusted", EmitDefaultValue = true)]
public bool Trusted { get; set; }
/// <summary>
/// Gets or Sets WebsiteUrl
/// </summary>
[DataMember(Name = "website_url", EmitDefaultValue = true)]
public string WebsiteUrl { get; set; }
/// <summary>
/// Gets or Sets PhotoUrl
/// </summary>
[DataMember(Name = "photo_url", EmitDefaultValue = true)]
public string PhotoUrl { get; set; }
/// <summary>
/// Gets or Sets BackgroundUrl
/// </summary>
[DataMember(Name = "background_url", EmitDefaultValue = true)]
public string BackgroundUrl { get; set; }
/// <summary>
/// Gets or Sets Redirects
/// </summary>
[DataMember(Name = "redirects", EmitDefaultValue = true)]
public string Redirects { get; set; }
/// <summary>
/// Gets or Sets Scopes
/// </summary>
[DataMember(Name = "scopes", EmitDefaultValue = true)]
public string Scopes { get; set; }
/// <summary>
/// Gets or Sets Permissions
/// </summary>
[DataMember(Name = "permissions", EmitDefaultValue = true)]
public List<string> Permissions { get; private set; }
/// <summary>
/// Returns false as Permissions should not be serialized given that it's read-only.
/// </summary>
/// <returns>false (boolean)</returns>
public bool ShouldSerializePermissions()
{
return false;
}
/// <summary>
/// Gets or Sets Created
/// </summary>
[DataMember(Name = "created", EmitDefaultValue = false)]
public DateTime Created { get; set; }
/// <summary>
/// Gets or Sets Updated
/// </summary>
[DataMember(Name = "updated", EmitDefaultValue = true)]
public DateTime? Updated { get; set; }
/// <summary>
/// Returns the string presentation of the object
/// </summary>
/// <returns>String presentation of the object</returns>
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append("class ModelClient {\n");
sb.Append(" Id: ").Append(Id).Append("\n");
sb.Append(" Name: ").Append(Name).Append("\n");
sb.Append(" Type: ").Append(Type).Append("\n");
sb.Append(" OrganizationId: ").Append(OrganizationId).Append("\n");
sb.Append(" Trusted: ").Append(Trusted).Append("\n");
sb.Append(" WebsiteUrl: ").Append(WebsiteUrl).Append("\n");
sb.Append(" PhotoUrl: ").Append(PhotoUrl).Append("\n");
sb.Append(" BackgroundUrl: ").Append(BackgroundUrl).Append("\n");
sb.Append(" Redirects: ").Append(Redirects).Append("\n");
sb.Append(" Scopes: ").Append(Scopes).Append("\n");
sb.Append(" Permissions: ").Append(Permissions).Append("\n");
sb.Append(" Created: ").Append(Created).Append("\n");
sb.Append(" Updated: ").Append(Updated).Append("\n");
sb.Append("}\n");
return sb.ToString();
}
/// <summary>
/// Returns the JSON string presentation of the object
/// </summary>
/// <returns>JSON string presentation of the object</returns>
public virtual string ToJson()
{
return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
}
/// <summary>
/// To validate all properties of the instance
/// </summary>
/// <param name="validationContext">Validation context</param>
/// <returns>Validation Result</returns>
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
// Name (string) maxLength
if (this.Name != null && this.Name.Length > 75)
{
yield return new ValidationResult("Invalid value for Name, length must be less than 75.", new [] { "Name" });
}
// PhotoUrl (string) maxLength
if (this.PhotoUrl != null && this.PhotoUrl.Length > 255)
{
yield return new ValidationResult("Invalid value for PhotoUrl, length must be less than 255.", new [] { "PhotoUrl" });
}
// BackgroundUrl (string) maxLength
if (this.BackgroundUrl != null && this.BackgroundUrl.Length > 255)
{
yield return new ValidationResult("Invalid value for BackgroundUrl, length must be less than 255.", new [] { "BackgroundUrl" });
}
yield break;
}
}
}

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Package /// Package
@@ -32,33 +32,48 @@ namespace Tribufu.Generated.Model
[DataContract(Name = "Package")] [DataContract(Name = "Package")]
public partial class Package : IValidatableObject public partial class Package : IValidatableObject
{ {
/// <summary>
/// Initializes a new instance of the <see cref="Package" /> class.
/// </summary>
[JsonConstructorAttribute]
protected Package() { }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Package" /> class. /// Initializes a new instance of the <see cref="Package" /> class.
/// </summary> /// </summary>
/// <param name="id">id.</param> /// <param name="id">id.</param>
/// <param name="name">name.</param> /// <param name="name">name (required).</param>
/// <param name="description">description.</param> /// <param name="description">description.</param>
/// <param name="imageUrl">imageUrl.</param>
/// <param name="authorId">authorId.</param> /// <param name="authorId">authorId.</param>
/// <param name="varVersion">varVersion.</param> /// <param name="imageUrl">imageUrl (required).</param>
/// <param name="fileUrl">fileUrl.</param> /// <param name="applicationId">applicationId.</param>
/// <param name="rawSize">rawSize.</param> /// <param name="categoryId">categoryId.</param>
/// <param name="downloadCount">downloadCount.</param> /// <param name="downloadCount">downloadCount.</param>
/// <param name="lastDownload">lastDownload.</param> /// <param name="lastDownload">lastDownload.</param>
/// <param name="releases">releases.</param>
/// <param name="created">created.</param> /// <param name="created">created.</param>
/// <param name="updated">updated.</param> /// <param name="updated">updated.</param>
public Package(string id = default(string), string name = default(string), string description = default(string), string imageUrl = default(string), string authorId = default(string), string varVersion = default(string), string fileUrl = default(string), double rawSize = default(double), int downloadCount = default(int), DateTime? lastDownload = default(DateTime?), DateTime created = default(DateTime), DateTime? updated = default(DateTime?)) public Package(string id = default(string), string name = default(string), string description = default(string), string authorId = default(string), string imageUrl = default(string), string applicationId = default(string), string categoryId = default(string), int downloadCount = default(int), DateTime? lastDownload = default(DateTime?), List<PackageRelease> releases = default(List<PackageRelease>), DateTime created = default(DateTime), DateTime? updated = default(DateTime?))
{ {
this.Id = id; // to ensure "name" is required (not null)
if (name == null)
{
throw new ArgumentNullException("name is a required property for Package and cannot be null");
}
this.Name = name; this.Name = name;
this.Description = description; // to ensure "imageUrl" is required (not null)
if (imageUrl == null)
{
throw new ArgumentNullException("imageUrl is a required property for Package and cannot be null");
}
this.ImageUrl = imageUrl; this.ImageUrl = imageUrl;
this.Id = id;
this.Description = description;
this.AuthorId = authorId; this.AuthorId = authorId;
this.VarVersion = varVersion; this.ApplicationId = applicationId;
this.FileUrl = fileUrl; this.CategoryId = categoryId;
this.RawSize = rawSize;
this.DownloadCount = downloadCount; this.DownloadCount = downloadCount;
this.LastDownload = lastDownload; this.LastDownload = lastDownload;
this.Releases = releases;
this.Created = created; this.Created = created;
this.Updated = updated; this.Updated = updated;
} }
@@ -72,7 +87,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Name /// Gets or Sets Name
/// </summary> /// </summary>
[DataMember(Name = "name", EmitDefaultValue = true)] [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
public string Name { get; set; } public string Name { get; set; }
/// <summary> /// <summary>
@@ -81,12 +96,6 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "description", EmitDefaultValue = true)] [DataMember(Name = "description", EmitDefaultValue = true)]
public string Description { get; set; } public string Description { get; set; }
/// <summary>
/// Gets or Sets ImageUrl
/// </summary>
[DataMember(Name = "image_url", EmitDefaultValue = true)]
public string ImageUrl { get; set; }
/// <summary> /// <summary>
/// Gets or Sets AuthorId /// Gets or Sets AuthorId
/// </summary> /// </summary>
@@ -94,22 +103,22 @@ namespace Tribufu.Generated.Model
public string AuthorId { get; set; } public string AuthorId { get; set; }
/// <summary> /// <summary>
/// Gets or Sets VarVersion /// Gets or Sets ImageUrl
/// </summary> /// </summary>
[DataMember(Name = "version", EmitDefaultValue = true)] [DataMember(Name = "image_url", IsRequired = true, EmitDefaultValue = true)]
public string VarVersion { get; set; } public string ImageUrl { get; set; }
/// <summary> /// <summary>
/// Gets or Sets FileUrl /// Gets or Sets ApplicationId
/// </summary> /// </summary>
[DataMember(Name = "file_url", EmitDefaultValue = true)] [DataMember(Name = "application_id", EmitDefaultValue = true)]
public string FileUrl { get; set; } public string ApplicationId { get; set; }
/// <summary> /// <summary>
/// Gets or Sets RawSize /// Gets or Sets CategoryId
/// </summary> /// </summary>
[DataMember(Name = "raw_size", EmitDefaultValue = false)] [DataMember(Name = "category_id", EmitDefaultValue = true)]
public double RawSize { get; set; } public string CategoryId { get; set; }
/// <summary> /// <summary>
/// Gets or Sets DownloadCount /// Gets or Sets DownloadCount
@@ -123,6 +132,12 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "last_download", EmitDefaultValue = true)] [DataMember(Name = "last_download", EmitDefaultValue = true)]
public DateTime? LastDownload { get; set; } public DateTime? LastDownload { get; set; }
/// <summary>
/// Gets or Sets Releases
/// </summary>
[DataMember(Name = "releases", EmitDefaultValue = true)]
public List<PackageRelease> Releases { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Created /// Gets or Sets Created
/// </summary> /// </summary>
@@ -146,13 +161,13 @@ namespace Tribufu.Generated.Model
sb.Append(" Id: ").Append(Id).Append("\n"); sb.Append(" Id: ").Append(Id).Append("\n");
sb.Append(" Name: ").Append(Name).Append("\n"); sb.Append(" Name: ").Append(Name).Append("\n");
sb.Append(" Description: ").Append(Description).Append("\n"); sb.Append(" Description: ").Append(Description).Append("\n");
sb.Append(" ImageUrl: ").Append(ImageUrl).Append("\n");
sb.Append(" AuthorId: ").Append(AuthorId).Append("\n"); sb.Append(" AuthorId: ").Append(AuthorId).Append("\n");
sb.Append(" VarVersion: ").Append(VarVersion).Append("\n"); sb.Append(" ImageUrl: ").Append(ImageUrl).Append("\n");
sb.Append(" FileUrl: ").Append(FileUrl).Append("\n"); sb.Append(" ApplicationId: ").Append(ApplicationId).Append("\n");
sb.Append(" RawSize: ").Append(RawSize).Append("\n"); sb.Append(" CategoryId: ").Append(CategoryId).Append("\n");
sb.Append(" DownloadCount: ").Append(DownloadCount).Append("\n"); sb.Append(" DownloadCount: ").Append(DownloadCount).Append("\n");
sb.Append(" LastDownload: ").Append(LastDownload).Append("\n"); sb.Append(" LastDownload: ").Append(LastDownload).Append("\n");
sb.Append(" Releases: ").Append(Releases).Append("\n");
sb.Append(" Created: ").Append(Created).Append("\n"); sb.Append(" Created: ").Append(Created).Append("\n");
sb.Append(" Updated: ").Append(Updated).Append("\n"); sb.Append(" Updated: ").Append(Updated).Append("\n");
sb.Append("}\n"); sb.Append("}\n");

View File

@@ -0,0 +1,159 @@
/*
* Tribufu API
*
* API to access Tribufu services.
*
* The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Model
{
/// <summary>
/// PackageRelease
/// </summary>
[DataContract(Name = "PackageRelease")]
public partial class PackageRelease : IValidatableObject
{
/// <summary>
/// Initializes a new instance of the <see cref="PackageRelease" /> class.
/// </summary>
[JsonConstructorAttribute]
protected PackageRelease() { }
/// <summary>
/// Initializes a new instance of the <see cref="PackageRelease" /> class.
/// </summary>
/// <param name="id">id.</param>
/// <param name="varVersion">varVersion (required).</param>
/// <param name="packageId">packageId.</param>
/// <param name="notes">notes.</param>
/// <param name="created">created.</param>
/// <param name="updated">updated.</param>
public PackageRelease(string id = default(string), string varVersion = default(string), string packageId = default(string), string notes = default(string), DateTime created = default(DateTime), DateTime? updated = default(DateTime?))
{
// to ensure "varVersion" is required (not null)
if (varVersion == null)
{
throw new ArgumentNullException("varVersion is a required property for PackageRelease and cannot be null");
}
this.VarVersion = varVersion;
this.Id = id;
this.PackageId = packageId;
this.Notes = notes;
this.Created = created;
this.Updated = updated;
}
/// <summary>
/// Gets or Sets Id
/// </summary>
[DataMember(Name = "id", EmitDefaultValue = false)]
public string Id { get; set; }
/// <summary>
/// Gets or Sets VarVersion
/// </summary>
[DataMember(Name = "version", IsRequired = true, EmitDefaultValue = true)]
public string VarVersion { get; set; }
/// <summary>
/// Gets or Sets PackageId
/// </summary>
[DataMember(Name = "package_id", EmitDefaultValue = false)]
public string PackageId { get; set; }
/// <summary>
/// Gets or Sets Notes
/// </summary>
[DataMember(Name = "notes", EmitDefaultValue = true)]
public string Notes { get; set; }
/// <summary>
/// Gets or Sets Files
/// </summary>
[DataMember(Name = "files", EmitDefaultValue = true)]
public List<StorageFile> Files { get; private set; }
/// <summary>
/// Returns false as Files should not be serialized given that it's read-only.
/// </summary>
/// <returns>false (boolean)</returns>
public bool ShouldSerializeFiles()
{
return false;
}
/// <summary>
/// Gets or Sets Created
/// </summary>
[DataMember(Name = "created", EmitDefaultValue = false)]
public DateTime Created { get; set; }
/// <summary>
/// Gets or Sets Updated
/// </summary>
[DataMember(Name = "updated", EmitDefaultValue = true)]
public DateTime? Updated { get; set; }
/// <summary>
/// Returns the string presentation of the object
/// </summary>
/// <returns>String presentation of the object</returns>
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append("class PackageRelease {\n");
sb.Append(" Id: ").Append(Id).Append("\n");
sb.Append(" VarVersion: ").Append(VarVersion).Append("\n");
sb.Append(" PackageId: ").Append(PackageId).Append("\n");
sb.Append(" Notes: ").Append(Notes).Append("\n");
sb.Append(" Files: ").Append(Files).Append("\n");
sb.Append(" Created: ").Append(Created).Append("\n");
sb.Append(" Updated: ").Append(Updated).Append("\n");
sb.Append("}\n");
return sb.ToString();
}
/// <summary>
/// Returns the JSON string presentation of the object
/// </summary>
/// <returns>JSON string presentation of the object</returns>
public virtual string ToJson()
{
return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
}
/// <summary>
/// To validate all properties of the instance
/// </summary>
/// <param name="validationContext">Validation context</param>
/// <returns>Validation Result</returns>
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
// VarVersion (string) maxLength
if (this.VarVersion != null && this.VarVersion.Length > 45)
{
yield return new ValidationResult("Invalid value for VarVersion, length must be less than 45.", new [] { "VarVersion" });
}
yield break;
}
}
}

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,31 +22,55 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Subscription /// Product
/// </summary> /// </summary>
[DataContract(Name = "Subscription")] [DataContract(Name = "Product")]
public partial class Subscription : IValidatableObject public partial class Product : IValidatableObject
{ {
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Subscription" /> class. /// Gets or Sets Type
/// </summary>
[DataMember(Name = "type", EmitDefaultValue = false)]
public ProductType? Type { get; set; }
/// <summary>
/// Initializes a new instance of the <see cref="Product" /> class.
/// </summary>
[JsonConstructorAttribute]
protected Product() { }
/// <summary>
/// Initializes a new instance of the <see cref="Product" /> class.
/// </summary> /// </summary>
/// <param name="id">id.</param> /// <param name="id">id.</param>
/// <param name="name">name.</param> /// <param name="name">name (required).</param>
/// <param name="description">description.</param> /// <param name="description">description.</param>
/// <param name="type">type.</param>
/// <param name="slug">slug.</param>
/// <param name="imageUrl">imageUrl.</param> /// <param name="imageUrl">imageUrl.</param>
/// <param name="isPhysical">isPhysical.</param>
/// <param name="prices">prices.</param>
/// <param name="created">created.</param> /// <param name="created">created.</param>
/// <param name="updated">updated.</param> /// <param name="updated">updated.</param>
public Subscription(string id = default(string), string name = default(string), string description = default(string), string imageUrl = default(string), DateTime created = default(DateTime), DateTime? updated = default(DateTime?)) public Product(string id = default(string), string name = default(string), string description = default(string), ProductType? type = default(ProductType?), string slug = default(string), string imageUrl = default(string), bool isPhysical = default(bool), List<ProductPrice> prices = default(List<ProductPrice>), DateTime created = default(DateTime), DateTime? updated = default(DateTime?))
{ {
this.Id = id; // to ensure "name" is required (not null)
if (name == null)
{
throw new ArgumentNullException("name is a required property for Product and cannot be null");
}
this.Name = name; this.Name = name;
this.Id = id;
this.Description = description; this.Description = description;
this.Type = type;
this.Slug = slug;
this.ImageUrl = imageUrl; this.ImageUrl = imageUrl;
this.IsPhysical = isPhysical;
this.Prices = prices;
this.Created = created; this.Created = created;
this.Updated = updated; this.Updated = updated;
} }
@@ -60,7 +84,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Name /// Gets or Sets Name
/// </summary> /// </summary>
[DataMember(Name = "name", EmitDefaultValue = true)] [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
public string Name { get; set; } public string Name { get; set; }
/// <summary> /// <summary>
@@ -69,26 +93,30 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "description", EmitDefaultValue = true)] [DataMember(Name = "description", EmitDefaultValue = true)]
public string Description { get; set; } public string Description { get; set; }
/// <summary>
/// Gets or Sets Slug
/// </summary>
[DataMember(Name = "slug", EmitDefaultValue = true)]
public string Slug { get; set; }
/// <summary> /// <summary>
/// Gets or Sets ImageUrl /// Gets or Sets ImageUrl
/// </summary> /// </summary>
[DataMember(Name = "image_url", EmitDefaultValue = true)] [DataMember(Name = "image_url", EmitDefaultValue = true)]
public string ImageUrl { get; set; } public string ImageUrl { get; set; }
/// <summary>
/// Gets or Sets IsPhysical
/// </summary>
[DataMember(Name = "is_physical", EmitDefaultValue = true)]
public bool IsPhysical { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Prices /// Gets or Sets Prices
/// </summary> /// </summary>
[DataMember(Name = "prices", EmitDefaultValue = true)] [DataMember(Name = "prices", EmitDefaultValue = true)]
public Dictionary<string, double> Prices { get; private set; } public List<ProductPrice> Prices { get; set; }
/// <summary>
/// Returns false as Prices should not be serialized given that it's read-only.
/// </summary>
/// <returns>false (boolean)</returns>
public bool ShouldSerializePrices()
{
return false;
}
/// <summary> /// <summary>
/// Gets or Sets Created /// Gets or Sets Created
/// </summary> /// </summary>
@@ -108,11 +136,14 @@ namespace Tribufu.Generated.Model
public override string ToString() public override string ToString()
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.Append("class Subscription {\n"); sb.Append("class Product {\n");
sb.Append(" Id: ").Append(Id).Append("\n"); sb.Append(" Id: ").Append(Id).Append("\n");
sb.Append(" Name: ").Append(Name).Append("\n"); sb.Append(" Name: ").Append(Name).Append("\n");
sb.Append(" Description: ").Append(Description).Append("\n"); sb.Append(" Description: ").Append(Description).Append("\n");
sb.Append(" Type: ").Append(Type).Append("\n");
sb.Append(" Slug: ").Append(Slug).Append("\n");
sb.Append(" ImageUrl: ").Append(ImageUrl).Append("\n"); sb.Append(" ImageUrl: ").Append(ImageUrl).Append("\n");
sb.Append(" IsPhysical: ").Append(IsPhysical).Append("\n");
sb.Append(" Prices: ").Append(Prices).Append("\n"); sb.Append(" Prices: ").Append(Prices).Append("\n");
sb.Append(" Created: ").Append(Created).Append("\n"); sb.Append(" Created: ").Append(Created).Append("\n");
sb.Append(" Updated: ").Append(Updated).Append("\n"); sb.Append(" Updated: ").Append(Updated).Append("\n");
@@ -142,6 +173,12 @@ namespace Tribufu.Generated.Model
yield return new ValidationResult("Invalid value for Name, length must be less than 75.", new [] { "Name" }); yield return new ValidationResult("Invalid value for Name, length must be less than 75.", new [] { "Name" });
} }
// Slug (string) maxLength
if (this.Slug != null && this.Slug.Length > 75)
{
yield return new ValidationResult("Invalid value for Slug, length must be less than 75.", new [] { "Slug" });
}
// ImageUrl (string) maxLength // ImageUrl (string) maxLength
if (this.ImageUrl != null && this.ImageUrl.Length > 255) if (this.ImageUrl != null && this.ImageUrl.Length > 255)
{ {

Some files were not shown because too many files have changed in this diff Show More