private static async Task TestPipelineApi()

in csharp/Microsoft.Azure.Databricks.Client.Sample/SampleProgram.Pipelines.cs [13:116]


    private static async Task TestPipelineApi(DatabricksClient client)
    {
        Console.WriteLine("Creating new pipeline");
        var pipelineSpecification = new PipelineSpecification()
        {
            Development = true,
            Clusters = new[]
            {
                new ClusterAttributes()
                {
                    AutoScale = new AutoScale()
                    {
                        MinWorkers = 1,
                        MaxWorkers = 5,
                    }
                }
            },
            Continuous = false,
            Channel = "CURRENT",
            Photon = true,
            Libraries = new[]
            {
                new NotebookLibrary()
                {
                    Notebook = new PathSpec()
                    {
                        Path = SampleNotebookPath
                    }
                }
            },
            Name = "samplePipeline",
            Edition = "CORE"
        };

        var createRes = await client.Pipelines.Create(pipelineSpecification, false, true);
        var pipelineId = createRes.Item1;
        Console.WriteLine($"Created a pipeline of id: {pipelineId}");
        PrintDelimiter();

        Console.WriteLine("Listing pipelines (max 10)");
        var pipelinesList = await client.Pipelines.List(maxResults: 10);
        foreach (var pipeline in pipelinesList.Pipelines)
        {
            Console.WriteLine($"\t{pipeline.Name}\t{pipeline.State}");
        }
        PrintDelimiter();

        Console.WriteLine("Getting created pipeline");
        var createdPipeline = await client.Pipelines.Get(pipelineId);
        Console.WriteLine($"\t{createdPipeline.PipelineId}\t{createdPipeline.Specification.Name}");
        PrintDelimiter();

        Console.WriteLine("Resetting created pipeline");
        await client.Pipelines.Reset(pipelineId);
        PrintDelimiter();

        Console.WriteLine("Stopping a pipeline");
        await client.Pipelines.Stop(pipelineId);
        PrintDelimiter();

        Console.WriteLine("Editting a pipeline - changing its' name");
        pipelineSpecification.Name = "samplePipelineNewName";
        await client.Pipelines.Edit(pipelineId, pipelineSpecification, allowDuplicateNames: true);
        PrintDelimiter();

        Console.WriteLine("Listing created pipeline updates (max 10)");
        var pipelineUpdates = await client.Pipelines.ListUpdates(pipelineId, maxResults: 10);
        foreach (var pipelineUpdate in pipelineUpdates.Updates)
        {
            Console.WriteLine($"\t{pipelineUpdate.UpdateId}\t{pipelineUpdate.State}");
        }
        PrintDelimiter();

        Console.WriteLine("Start pipeline update");
        await client.Pipelines.Stop(pipelineId);
        var pipelineUpdateId = await client.Pipelines.Start(pipelineId);
        PrintDelimiter();

        Console.WriteLine("Getting queued pipeline");
        var queuedPipelineUpdate = await client.Pipelines.GetUpdate(
            pipelineId,
            pipelineUpdateId);
        Console.WriteLine($"\t{queuedPipelineUpdate.UpdateId}\t{queuedPipelineUpdate.State}");
        PrintDelimiter();

        Console.WriteLine("Stopping a pipeline");
        await client.Pipelines.Stop(pipelineId);
        PrintDelimiter();

        Console.WriteLine("Listing pipeline events");
        var pipelineEvents = await client.Pipelines.ListEvents(
            pipelineId,
            maxResults: 10);
        foreach (var pipelineEvent in pipelineEvents.Events)
        {
            Console.WriteLine($"\t{pipelineEvent.Id}");
        }
        PrintDelimiter();

        Console.WriteLine("Deleting create pipeline");
        await client.Pipelines.Delete(pipelineId);

        return;
    }