csharp/Microsoft.Azure.Databricks.Client/UnityCatalog/ConnectionsApiClient.cs (50 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 ConnectionsApiClient : ApiClient, IConnectionsApi
{
public ConnectionsApiClient(HttpClient httpClient) : base(httpClient)
{
}
public async Task<IEnumerable<Connection>> List(CancellationToken cancellationToken = default)
{
var requestUri = $"{BaseUnityCatalogUri}/connections";
var connectionsList = await HttpGet<JsonObject>(this.HttpClient, requestUri, cancellationToken).ConfigureAwait(false);
connectionsList.TryGetPropertyValue("connections", out var connections);
return connections?.Deserialize<IEnumerable<Connection>>(Options) ?? Enumerable.Empty<Connection>();
}
public async Task<Connection> Create(
ConnectionAttributes connectionAttributes,
CancellationToken cancellationToken = default)
{
var requestUri = $"{BaseUnityCatalogUri}/connections";
return await HttpPost<ConnectionAttributes, Connection>(HttpClient, requestUri, connectionAttributes, cancellationToken).ConfigureAwait(false);
}
public async Task<Connection> Get(string name, CancellationToken cancellationToken = default)
{
var requestUri = $"{BaseUnityCatalogUri}/connections/{name}";
return await HttpGet<Connection>(HttpClient, requestUri, cancellationToken).ConfigureAwait(false);
}
public async Task<Connection> Update(
string connectionName,
string name,
Dictionary<string, string> options = default,
string owner = default,
CancellationToken cancellationToken = default)
{
var requestUri = $"{BaseUnityCatalogUri}/connections/{connectionName}";
var request = new { name, options, owner };
return await HttpPatch<dynamic, Connection>(HttpClient, requestUri, request, cancellationToken).ConfigureAwait(false);
}
public async Task Delete(string connectionName, CancellationToken cancellationToken = default)
{
var requestUri = $"{BaseUnityCatalogUri}/connections/{connectionName}";
await HttpDelete(HttpClient, requestUri, cancellationToken).ConfigureAwait(false);
}
}