/
WorkspaceClient.cs
98 lines (88 loc) · 3.97 KB
/
WorkspaceClient.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// <auto-generated/>
#nullable disable
using System;
using System.Threading;
using System.Threading.Tasks;
using Azure;
using Azure.Analytics.Synapse.Artifacts.Models;
using Azure.Core;
using Azure.Core.Pipeline;
namespace Azure.Analytics.Synapse.Artifacts
{
/// <summary> The Workspace service client. </summary>
public partial class WorkspaceClient
{
private readonly ClientDiagnostics _clientDiagnostics;
private readonly HttpPipeline _pipeline;
internal WorkspaceRestClient RestClient { get; }
/// <summary> Initializes a new instance of WorkspaceClient for mocking. </summary>
protected WorkspaceClient()
{
}
/// <summary> Initializes a new instance of WorkspaceClient. </summary>
/// <param name="endpoint"> The workspace development endpoint, for example https://myworkspace.dev.azuresynapse.net. </param>
/// <param name="credential"> A credential used to authenticate to an Azure Service. </param>
/// <param name="options"> The options for configuring the client. </param>
public WorkspaceClient(Uri endpoint, TokenCredential credential, ArtifactsClientOptions options = null)
{
if (endpoint == null)
{
throw new ArgumentNullException(nameof(endpoint));
}
if (credential == null)
{
throw new ArgumentNullException(nameof(credential));
}
options ??= new ArtifactsClientOptions();
_clientDiagnostics = new ClientDiagnostics(options);
string[] scopes = { "https://dev.azuresynapse.net/.default" };
_pipeline = HttpPipelineBuilder.Build(options, new BearerTokenAuthenticationPolicy(credential, scopes));
RestClient = new WorkspaceRestClient(_clientDiagnostics, _pipeline, endpoint, options.Version);
}
/// <summary> Initializes a new instance of WorkspaceClient. </summary>
/// <param name="clientDiagnostics"> The handler for diagnostic messaging in the client. </param>
/// <param name="pipeline"> The HTTP pipeline for sending and receiving REST requests and responses. </param>
/// <param name="endpoint"> The workspace development endpoint, for example https://myworkspace.dev.azuresynapse.net. </param>
/// <param name="apiVersion"> Api Version. </param>
internal WorkspaceClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion = "2019-06-01-preview")
{
RestClient = new WorkspaceRestClient(clientDiagnostics, pipeline, endpoint, apiVersion);
_clientDiagnostics = clientDiagnostics;
_pipeline = pipeline;
}
/// <summary> Get Workspace. </summary>
/// <param name="cancellationToken"> The cancellation token to use. </param>
public virtual async Task<Response<Workspace>> GetAsync(CancellationToken cancellationToken = default)
{
using var scope = _clientDiagnostics.CreateScope("WorkspaceClient.Get");
scope.Start();
try
{
return await RestClient.GetAsync(cancellationToken).ConfigureAwait(false);
}
catch (Exception e)
{
scope.Failed(e);
throw;
}
}
/// <summary> Get Workspace. </summary>
/// <param name="cancellationToken"> The cancellation token to use. </param>
public virtual Response<Workspace> Get(CancellationToken cancellationToken = default)
{
using var scope = _clientDiagnostics.CreateScope("WorkspaceClient.Get");
scope.Start();
try
{
return RestClient.Get(cancellationToken);
}
catch (Exception e)
{
scope.Failed(e);
throw;
}
}
}
}