csharp/Microsoft.Azure.Databricks.Client/UnityCatalog/SecurableWorkspaceBindingsApiClient.cs (38 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 SecurableWorkspaceBindingsApiClient : ApiClient, ISecurableWorkspaceBindingsApi
{
public SecurableWorkspaceBindingsApiClient(HttpClient httpClient) : base(httpClient)
{
}
public async Task<IEnumerable<SecurableWorkspaceBinding>> Get(
string securableType,
string securableName,
CancellationToken cancellationToken = default)
{
var requestUri = $"{BaseUnityCatalogUri}/bindings/{securableType}/{securableName}";
var securityBindingsList = await HttpGet<JsonObject>(this.HttpClient, requestUri, cancellationToken).ConfigureAwait(false);
securityBindingsList.TryGetPropertyValue("bindings", out var securityBindings);
return securityBindings.Deserialize<IEnumerable<SecurableWorkspaceBinding>>(Options) ?? Enumerable.Empty<SecurableWorkspaceBinding>();
}
public async Task<IEnumerable<SecurableWorkspaceBinding>> Update(
string securableType,
string securableName,
IEnumerable<SecurableWorkspaceBinding> add,
IEnumerable<SecurableWorkspaceBinding> remove,
CancellationToken cancellationToken = default)
{
var requestUri = $"{BaseUnityCatalogUri}/bindings/{securableType}/{securableName}";
var request = new { add, remove };
var securityBindingsList = await HttpPatch<dynamic, JsonObject>(HttpClient, requestUri, request, cancellationToken).ConfigureAwait(false);
securityBindingsList.TryGetPropertyValue("bindings", out var securityBindings);
return securityBindings.Deserialize<IEnumerable<SecurableWorkspaceBinding>>(Options) ?? Enumerable.Empty<SecurableWorkspaceBinding>();
}
}