csharp/Microsoft.Azure.Databricks.Client/UnityCatalog/RegisteredModelApiClient.cs (74 lines of code) (raw):

using Azure; using Microsoft.Azure.Databricks.Client.Models.UnityCatalog; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Text; using System.Text.Json; using System.Text.Json.Nodes; using System.Threading; using System.Threading.Tasks; namespace Microsoft.Azure.Databricks.Client.UnityCatalog; public class RegisteredModelsApiClient : ApiClient, IRegisteredModelsApi { public RegisteredModelsApiClient(HttpClient httpClient) : base(httpClient) { } public async Task<(IEnumerable<RegisteredModel>, string)> List( string catalog_name = default, string schema_name = default, int max_results = 0, string pageToken = default, CancellationToken cancellationToken = default) { var requestUriSb = new StringBuilder($"{BaseUnityCatalogUri}/models?"); if (!string.IsNullOrEmpty(catalog_name)) { requestUriSb.Append($"&catalog_name={Uri.EscapeDataString(catalog_name)}"); } if (!string.IsNullOrEmpty(schema_name)) { requestUriSb.Append($"&schema_name={Uri.EscapeDataString(schema_name)}"); } if (max_results > 0) { requestUriSb.Append($"&max_results={max_results}"); } if (pageToken != null) { requestUriSb.Append($"&page_token={pageToken}"); } var response = await HttpGet<JsonObject>(HttpClient, requestUriSb.ToString(), cancellationToken).ConfigureAwait(false); response.TryGetPropertyValue("registered_models", out var registeredModels); response.TryGetPropertyValue("next_page_token", out var nextPageTokenNode); var models = registeredModels?.Deserialize<IEnumerable<RegisteredModel>>(Options) ?? Enumerable.Empty<RegisteredModel>(); var nextPageToken = nextPageTokenNode?.GetValue<string>() ?? string.Empty; return (models, nextPageToken); } public global::Azure.AsyncPageable<RegisteredModel> ListPageable( string catalog_name = default, string schema_name = default, int max_results = 0, CancellationToken cancellationToken = default) { return new AsyncPageable<RegisteredModel>(async (pageToken) => { var (models, nextPageToken) = await List(catalog_name, schema_name, max_results, pageToken, cancellationToken).ConfigureAwait(false); return (models.ToList(), !string.IsNullOrEmpty(nextPageToken), nextPageToken); }); } public async Task<RegisteredModel> Get(string full_name, CancellationToken cancellationToken = default) { var requestUri = $"{BaseUnityCatalogUri}/models/{full_name}"; return await HttpGet<RegisteredModel>(HttpClient, requestUri, cancellationToken); } public async Task<RegisteredModelAlias> SetAlias( string full_name, string alias, int version_num, CancellationToken cancellationToken = default) { var requestUri = $"{BaseUnityCatalogUri}/models/{full_name}/aliases/{alias}"; var request = new { version_num }; return await HttpPut<dynamic, RegisteredModelAlias>(HttpClient, requestUri, request, cancellationToken); } }