An open API service indexing awesome lists of open source software.

https://github.com/lab5e/csharp-userapi

C# User API Client library
https://github.com/lab5e/csharp-userapi

Last synced: 15 days ago
JSON representation

C# User API Client library

Awesome Lists containing this project

README

          

# Com.Lab5e.User - the C# library for the The User API

API to manage teams, members and tokens

This C# SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: 1.3.13 bordering-jerilyn
- SDK version: 1.3.13
- Build package: org.openapitools.codegen.languages.CSharpNetCoreClientCodegen
For more information, please visit [https://docs.lab5e.com](https://docs.lab5e.com)


## Frameworks supported


## Dependencies

- [RestSharp](https://www.nuget.org/packages/RestSharp) - 106.11.7 or later
- [Json.NET](https://www.nuget.org/packages/Newtonsoft.Json/) - 12.0.3 or later
- [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 RestSharp
Install-Package Newtonsoft.Json
Install-Package JsonSubTypes
Install-Package System.ComponentModel.Annotations
```

NOTE: RestSharp versions greater than 105.1.0 have a bug which causes file uploads to fail. See [RestSharp#742](https://github.com/restsharp/RestSharp/issues/742)


## 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 Com.Lab5e.User.Api;
using Com.Lab5e.User.Client;
using Com.Lab5e.User.Model;
```

## 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 Com.Lab5e.User.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.


## 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;
```


## Getting Started

```csharp
using System.Collections.Generic;
using System.Diagnostics;
using Com.Lab5e.User.Api;
using Com.Lab5e.User.Client;
using Com.Lab5e.User.Model;

namespace Example
{
public class Example
{
public static void Main()
{

Configuration config = new Configuration();
config.BasePath = "https://api.lab5e.com";
// Configure API key authorization: APIToken
config.ApiKey.Add("X-API-Token", "YOUR_API_KEY");
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// config.ApiKeyPrefix.Add("X-API-Token", "Bearer");

var apiInstance = new ProfileApi(config);

try
{
// Logged in profile
UserProfile result = apiInstance.GetUserProfile();
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling ProfileApi.GetUserProfile: " + e.Message );
Debug.Print("Status Code: "+ e.ErrorCode);
Debug.Print(e.StackTrace);
}

}
}
}
```


## Documentation for API Endpoints

All URIs are relative to *https://api.lab5e.com*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*ProfileApi* | [**GetUserProfile**](docs/ProfileApi.md#getuserprofile) | **GET** /user/profile | Logged in profile
*TeamsApi* | [**AcceptInvite**](docs/TeamsApi.md#acceptinvite) | **POST** /user/teams/accept | Accept invite
*TeamsApi* | [**CreateTeam**](docs/TeamsApi.md#createteam) | **POST** /user/teams | Create team
*TeamsApi* | [**DeleteInvite**](docs/TeamsApi.md#deleteinvite) | **DELETE** /user/teams/{teamId}/invites/{code} | Delete invite
*TeamsApi* | [**DeleteMember**](docs/TeamsApi.md#deletemember) | **DELETE** /user/teams/{teamId}/members/{userId} | Remove member
*TeamsApi* | [**DeleteTeam**](docs/TeamsApi.md#deleteteam) | **DELETE** /user/teams/{teamId} | Remove team
*TeamsApi* | [**GenerateInvite**](docs/TeamsApi.md#generateinvite) | **POST** /user/teams/{teamId}/invites | Generate invite
*TeamsApi* | [**ListInvites**](docs/TeamsApi.md#listinvites) | **GET** /user/teams/{teamId}/invites | List invites
*TeamsApi* | [**ListTeams**](docs/TeamsApi.md#listteams) | **GET** /user/teams | List teams
*TeamsApi* | [**RetrieveInvite**](docs/TeamsApi.md#retrieveinvite) | **GET** /user/teams/{teamId}/invites/{code} | Retrieve invite
*TeamsApi* | [**RetrieveMember**](docs/TeamsApi.md#retrievemember) | **GET** /user/teams/{teamId}/members/{userId} | Retrieve member
*TeamsApi* | [**RetrieveTeam**](docs/TeamsApi.md#retrieveteam) | **GET** /user/teams/{teamId} | Retrieve team
*TeamsApi* | [**RetrieveTeamMembers**](docs/TeamsApi.md#retrieveteammembers) | **GET** /user/teams/{teamId}/members | List members
*TeamsApi* | [**UpdateMember**](docs/TeamsApi.md#updatemember) | **PATCH** /user/teams/{teamId}/members/{userId} | Update member
*TeamsApi* | [**UpdateTeam**](docs/TeamsApi.md#updateteam) | **PATCH** /user/teams/{teamId} | Update team
*TokensApi* | [**CreateToken**](docs/TokensApi.md#createtoken) | **POST** /user/tokens | Create token
*TokensApi* | [**DeleteToken**](docs/TokensApi.md#deletetoken) | **DELETE** /user/tokens/{token} | Remove token
*TokensApi* | [**ListTokens**](docs/TokensApi.md#listtokens) | **GET** /user/tokens | List tokens
*TokensApi* | [**RetrieveToken**](docs/TokensApi.md#retrievetoken) | **GET** /user/tokens/{token} | Retrieve token
*TokensApi* | [**UpdateToken**](docs/TokensApi.md#updatetoken) | **PATCH** /user/tokens/{token} | Update token


## Documentation for Models

- [Model.ATeam](docs/ATeam.md)
- [Model.AcceptInviteRequest](docs/AcceptInviteRequest.md)
- [Model.AnAPIToken](docs/AnAPIToken.md)
- [Model.DeleteInviteResponse](docs/DeleteInviteResponse.md)
- [Model.DeleteTokenResponse](docs/DeleteTokenResponse.md)
- [Model.Invite](docs/Invite.md)
- [Model.InviteList](docs/InviteList.md)
- [Model.Member](docs/Member.md)
- [Model.MemberList](docs/MemberList.md)
- [Model.MemberOfATeam](docs/MemberOfATeam.md)
- [Model.ProtobufAny](docs/ProtobufAny.md)
- [Model.RequestInviteDetails](docs/RequestInviteDetails.md)
- [Model.RpcStatus](docs/RpcStatus.md)
- [Model.Team](docs/Team.md)
- [Model.TeamList](docs/TeamList.md)
- [Model.Token](docs/Token.md)
- [Model.TokenList](docs/TokenList.md)
- [Model.UserProfile](docs/UserProfile.md)


## Documentation for Authorization


### APIToken

- **Type**: API key
- **API key parameter name**: X-API-Token
- **Location**: HTTP header