csharp/Microsoft.Azure.Databricks.Client/GlobalInitScriptsApi.cs (52 lines of code) (raw):

// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. using Microsoft.Azure.Databricks.Client.Models; 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; public class GlobalInitScriptsApi : ApiClient, IGlobalInitScriptsApi { public GlobalInitScriptsApi(HttpClient httpClient) : base(httpClient) { } public async Task<IEnumerable<GlobalInitScript>> List(CancellationToken cancellationToken = default) { var requestUri = $"{ApiVersion}/global-init-scripts"; var response = await HttpGet<JsonObject>(this.HttpClient, requestUri, cancellationToken) .ConfigureAwait(false); return response.TryGetPropertyValue("scripts", out var scriptsNode) ? scriptsNode.Deserialize<IEnumerable<GlobalInitScript>>(Options) : Enumerable.Empty<GlobalInitScript>(); } public async Task<GlobalInitScript> Get(string scriptId, CancellationToken cancellationToken = default) { var requestUri = $"{ApiVersion}/global-init-scripts/{scriptId}"; return await HttpGet<GlobalInitScript>(this.HttpClient, requestUri, cancellationToken).ConfigureAwait(false); } public async Task<string> Create(string name, string script, bool enabled = false, int? position = default, CancellationToken cancellationToken = default) { var requestUri = $"{ApiVersion}/global-init-scripts"; var request = new GlobalInitScript { Enabled = enabled, Name = name, Position = position, Script = script }; var idNode = await HttpPost<GlobalInitScript, JsonObject>(this.HttpClient, requestUri, request, cancellationToken) .ConfigureAwait(false); return idNode["script_id"]!.GetValue<string>(); } public async Task Delete(string scriptId, CancellationToken cancellationToken = default) { var requestUri = $"{ApiVersion}/global-init-scripts/{scriptId}"; await HttpDelete(this.HttpClient, requestUri, cancellationToken).ConfigureAwait(false); } public async Task Update(string scriptId, string name = null, string script = null, bool? enabled = default, int? position = default, CancellationToken cancellationToken = default) { var requestUri = $"{ApiVersion}/global-init-scripts/{scriptId}"; var request = new GlobalInitScript { Enabled = enabled, Name = name, Position = position, Script = script }; await HttpPatch(this.HttpClient, requestUri, request, cancellationToken).ConfigureAwait(false); } }