OVHSDK 0.3.77
dotnet add package OVHSDK --version 0.3.77
NuGet\Install-Package OVHSDK -Version 0.3.77
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="OVHSDK" Version="0.3.77" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OVHSDK" Version="0.3.77" />
<PackageReference Include="OVHSDK" />
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 OVHSDK --version 0.3.77
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: OVHSDK, 0.3.77"
#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 OVHSDK@0.3.77
#: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=OVHSDK&version=0.3.77
#tool nuget:?package=OVHSDK&version=0.3.77
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Authentication
There are three ways to authenticate with OVH:
- Application key, application secret, and consumer key
- Client ID and Client Secret
- Token
There is an authentication implementation for each method:
Ovh.Sdk.Net.AuthProviders.ApplicationOvh.Sdk.Net.AuthProviders.OAuth2Ovh.Sdk.Net.AuthProviders.Token
Refer to the examples for usage.
Samples
SA creation, attach policy and SA login
using _iam_policy;
using _oauth2;
using Ovh.Sdk.Net;
using Ovh.Sdk.Net.AuthProviders;
using Action = _iam_policy.Action;
// Login with an application
// Fetch credentials from environment variables (OVH_APPLICATION_KEY, OVH_APPLICATION_SECRET, OVH_CONSUMER_KEY)
var applicationProvider = new Application();
// Uncomment this line to log all requests and responses
//var handler = new LogHandler(new HttpClientHandler());
var handler = new HttpClientHandler();
var adminClient = new Client(new HttpClient(handler)
{
BaseAddress = new Uri("https://eu.api.ovh.com"),
}, applicationProvider);
// Create a service account
var serviceAccount = await adminClient.PostV1MeApiOauth2ClientAsync(new clientRequest
{
Name = "ProjectViewer",
Description = "Service account to view all projects",
CallbackUrls = [],
Flow = ClientFlowEnum.CLIENT_CREDENTIALS,
});
var saInfos = await adminClient.GetV1MeApiOauth2ClientClientIdAsync(serviceAccount.ClientId);
// Upsert the policy for the service account
var activePolicies = await adminClient.GetV2IamPolicyAsync();
var policy = activePolicies.FirstOrDefault(x => x.Name == "OvhSdkNet_Sample");
if (policy == null)
{
policy = await adminClient.PostV2IamPolicyAsync(new Creation
{
Description = "View all projects",
Identities = [saInfos.Identity],
Name = "OvhSdkNet_Sample",
Permissions = new Permissions
{
Allow =
[
new Action
{
_Action = "publicCloudProject:apiovh:get"
}
]
},
Resources = [new Resource { Urn = "urn:v1:eu:resource:publicCloudProject:*" }]
});
}
else
{
await adminClient.PutV2IamPolicyPolicyIdAsync(new Update
{
Description = "View all projects",
Identities = [saInfos.Identity],
Name = "OvhSdkNet_Sample",
Permissions = new Permissions
{
Allow =
[
new Action
{
_Action = "publicCloudProject:apiovh:get"
}
]
},
Resources = [new Resource { Urn = "urn:v1:eu:resource:publicCloudProject:*" }]
}, policy.Id);
}
// Login with the service account
var oauthProvider = new OAuth2(serviceAccount.ClientId, serviceAccount._ClientSecret, "https://www.ovh.com/auth/oauth2/token");
var serviceAccountClient = new Client(new HttpClient(handler)
{
BaseAddress = new Uri("https://eu.api.ovh.com"),
}, oauthProvider);
// Get all projects with our new service account
var projects = await serviceAccountClient.GetV1CloudProjectAsync();
foreach (var project in projects)
{
var projectInfo = await serviceAccountClient.GetV1CloudProjectServiceNameAsync(project);
Console.WriteLine($"{project}: {projectInfo.Description}");
}
// Cleanup the service account and policy
await adminClient.DeleteV2IamPolicyPolicyIdAsync(policy.Id);
await adminClient.DeleteV1MeApiOauth2ClientClientIdAsync(serviceAccount.ClientId);
| 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
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.3.77 | 211 | 1/25/2025 |
| 0.3.76 | 163 | 1/24/2025 |
| 0.3.75 | 169 | 1/23/2025 |
| 0.3.74 | 178 | 1/22/2025 |
| 0.3.73 | 161 | 1/21/2025 |
| 0.3.72 | 164 | 1/18/2025 |
| 0.3.71 | 160 | 1/17/2025 |
| 0.3.70 | 148 | 1/16/2025 |
| 0.3.69 | 120 | 1/15/2025 |
| 0.3.68 | 149 | 1/14/2025 |
| 0.3.67 | 162 | 1/12/2025 |
| 0.3.66 | 161 | 1/11/2025 |
| 0.3.65 | 156 | 1/10/2025 |
| 0.3.64 | 152 | 1/9/2025 |
| 0.3.63 | 130 | 1/8/2025 |
| 0.3.62 | 169 | 1/7/2025 |
| 0.3.61 | 180 | 12/29/2024 |
| 0.3.60 | 162 | 12/28/2024 |
| 0.3.59 | 172 | 12/25/2024 |
| 0.3.58 | 163 | 12/23/2024 |
Loading failed