OpenSpanner 0.1.11
dotnet add package OpenSpanner --version 0.1.11
NuGet\Install-Package OpenSpanner -Version 0.1.11
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OpenSpanner" Version="0.1.11" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OpenSpanner" Version="0.1.11" />
<PackageReference Include="OpenSpanner" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add OpenSpanner --version 0.1.11
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: OpenSpanner, 0.1.11"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package OpenSpanner@0.1.11
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=OpenSpanner&version=0.1.11
#tool nuget:?package=OpenSpanner&version=0.1.11
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Open Spanner C# SDK
Generated C# client for the Open Spanner API.
gRPC streaming
Use the stream client from trusted backend code when you want to send usage through the gRPC ingestion service:
using OpenSpanner.Streaming;
var client = new StreamClient("http://localhost:18082", "osp_live_...");
var result = await client.TrackBulkAsync(
idempotencyKey: Guid.NewGuid().ToString(),
events:
[
new Event
{
IdempotencyKey = Guid.NewGuid().ToString(),
Subject = "org_123",
Meter = "api_requests",
Quantity = 1,
Timestamp = DateTimeOffset.UtcNow,
Metadata = new Dictionary<string, object?>
{
["endpoint"] = "/checkout",
["status"] = 200,
},
},
]);
Console.WriteLine($"accepted={result.AcceptedCount} failed={result.FailedCount}");
REST client
Record usage for a meter that already exists:
using Microsoft.Kiota.Abstractions.Authentication;
using Microsoft.Kiota.Http.HttpClientLibrary;
using OpenSpanner;
using OpenSpanner.Models;
var apiKey = "...";
var authProvider = new BaseBearerTokenAuthenticationProvider(new ApiKeyProvider(apiKey));
var adapter = new HttpClientRequestAdapter(authProvider)
{
BaseUrl = "https://api.example.com",
};
var client = new OpenSpannerClient(adapter);
var usage = await client.V1.Usages.PostAsync(new UsageCreateRequest
{
IdempotencyKey = Guid.NewGuid().ToString(),
Subject = "org_123",
Meter = "api_requests",
Quantity = 1,
Timestamp = DateTimeOffset.UtcNow.ToString("O"),
});
Console.WriteLine(usage?.Id);
sealed class ApiKeyProvider(string apiKey) : IAccessTokenProvider
{
public AllowedHostsValidator AllowedHostsValidator { get; } = new();
public Task<string> GetAuthorizationTokenAsync(
Uri uri,
Dictionary<string, object>? additionalAuthenticationContext = null,
CancellationToken cancellationToken = default)
{
return Task.FromResult(apiKey);
}
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- Google.Protobuf (>= 3.33.1)
- Grpc.Net.Client (>= 2.71.0)
- Microsoft.Kiota.Bundle (>= 2.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.