csharp/Microsoft.Azure.Databricks.Client/UnityCatalog/StorageCredentialsApiClient.cs (65 lines of code) (raw):
using Microsoft.Azure.Databricks.Client.Models.UnityCatalog;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text.Json;
using System.Text.Json.Nodes;
using System.Threading;
using System.Threading.Tasks;
namespace Microsoft.Azure.Databricks.Client.UnityCatalog;
public class StorageCredentialsApiClient : ApiClient, IStorageCredentialsApi
{
public StorageCredentialsApiClient(HttpClient httpClient) : base(httpClient)
{
}
public async Task<IEnumerable<StorageCredential>> List(CancellationToken cancellationToken = default)
{
var requestUri = $"{BaseUnityCatalogUri}/storage-credentials";
var credentialsList = await HttpGet<JsonObject>(this.HttpClient, requestUri, cancellationToken).ConfigureAwait(false);
credentialsList.TryGetPropertyValue("storage_credentials", out var credentials);
return credentials?.Deserialize<IEnumerable<StorageCredential>>(Options) ?? Enumerable.Empty<StorageCredential>();
}
public async Task<StorageCredential> Create(
StorageCredentialAttributes credentialAttributes,
bool? skipValidation = default,
CancellationToken cancellationToken = default)
{
var requestUri = $"{BaseUnityCatalogUri}/storage-credentials";
var request = JsonSerializer.SerializeToNode(credentialAttributes, Options).AsObject();
if (skipValidation != null)
{
request.Add("skip_validation", skipValidation);
}
return await HttpPost<JsonObject, StorageCredential>(this.HttpClient, requestUri, request, cancellationToken)
.ConfigureAwait(false);
}
public async Task<StorageCredential> Get(string name, CancellationToken cancellationToken = default)
{
var requestUri = $"{BaseUnityCatalogUri}/storage-credentials/{name}";
return await HttpGet<StorageCredential>(this.HttpClient, requestUri, cancellationToken).ConfigureAwait(false);
}
public async Task<StorageCredential> Update(
string storageCredentialName,
StorageCredentialAttributes credentialAttributes = default,
bool? skipValidation = default,
bool? force = default,
CancellationToken cancellationToken = default)
{
var requestUri = $"{BaseUnityCatalogUri}/storage-credentials/{storageCredentialName}";
var request = JsonSerializer.SerializeToNode(credentialAttributes, Options).AsObject();
if (skipValidation != null)
{
request.Add("skip_validation", skipValidation);
}
if (force != null)
{
request.Add("force", force);
}
return await HttpPatch<JsonObject, StorageCredential>(HttpClient, requestUri, request, cancellationToken).ConfigureAwait(false);
}
public async Task Delete(string storageCredentialName, CancellationToken cancellationToken = default)
{
var requestUri = $"{BaseUnityCatalogUri}/storage-credentials/{storageCredentialName}";
await HttpDelete(HttpClient, requestUri, cancellationToken).ConfigureAwait(false);
}
}