Skip to content

Commit b860c1c

Browse files
author
Basel Rustum
authored
refactor(ADT): Change APIs to take in and return generic types instead of using strings (Azure#16143)
1 parent 7074c1b commit b860c1c

File tree

42 files changed

+14776
-164992
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+14776
-164992
lines changed

sdk/digitaltwins/Azure.DigitalTwins.Core/api/Azure.DigitalTwins.Core.netstandard2.0.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,14 @@ public partial class DigitalTwinsClient
6161
protected DigitalTwinsClient() { }
6262
public DigitalTwinsClient(System.Uri endpoint, Azure.Core.TokenCredential credential) { }
6363
public DigitalTwinsClient(System.Uri endpoint, Azure.Core.TokenCredential credential, Azure.DigitalTwins.Core.DigitalTwinsClientOptions options) { }
64-
public virtual Azure.Response<string> CreateDigitalTwin(string digitalTwinId, string digitalTwin, Azure.DigitalTwins.Core.CreateDigitalTwinOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
65-
public virtual System.Threading.Tasks.Task<Azure.Response<string>> CreateDigitalTwinAsync(string digitalTwinId, string digitalTwin, Azure.DigitalTwins.Core.CreateDigitalTwinOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
64+
public virtual System.Threading.Tasks.Task<Azure.Response<T>> CreateDigitalTwinAsync<T>(string digitalTwinId, T digitalTwin, Azure.DigitalTwins.Core.CreateDigitalTwinOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
65+
public virtual Azure.Response<T> CreateDigitalTwin<T>(string digitalTwinId, T digitalTwin, Azure.DigitalTwins.Core.CreateDigitalTwinOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
6666
public virtual Azure.Response CreateEventRoute(string eventRouteId, Azure.DigitalTwins.Core.EventRoute eventRoute, Azure.DigitalTwins.Core.CreateEventRouteOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
6767
public virtual System.Threading.Tasks.Task<Azure.Response> CreateEventRouteAsync(string eventRouteId, Azure.DigitalTwins.Core.EventRoute eventRoute, Azure.DigitalTwins.Core.CreateEventRouteOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
6868
public virtual Azure.Response<Azure.DigitalTwins.Core.DigitalTwinsModelData[]> CreateModels(System.Collections.Generic.IEnumerable<string> models, Azure.DigitalTwins.Core.CreateModelsOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
6969
public virtual System.Threading.Tasks.Task<Azure.Response<Azure.DigitalTwins.Core.DigitalTwinsModelData[]>> CreateModelsAsync(System.Collections.Generic.IEnumerable<string> models, Azure.DigitalTwins.Core.CreateModelsOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
70-
public virtual Azure.Response<string> CreateRelationship(string digitalTwinId, string relationshipId, string relationship, Azure.DigitalTwins.Core.CreateRelationshipOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
71-
public virtual System.Threading.Tasks.Task<Azure.Response<string>> CreateRelationshipAsync(string digitalTwinId, string relationshipId, string relationship, Azure.DigitalTwins.Core.CreateRelationshipOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
70+
public virtual System.Threading.Tasks.Task<Azure.Response<T>> CreateRelationshipAsync<T>(string digitalTwinId, string relationshipId, T relationship, Azure.DigitalTwins.Core.CreateRelationshipOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
71+
public virtual Azure.Response<T> CreateRelationship<T>(string digitalTwinId, string relationshipId, T relationship, Azure.DigitalTwins.Core.CreateRelationshipOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
7272
public virtual Azure.Response DecommissionModel(string modelId, Azure.DigitalTwins.Core.DecomissionModelOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
7373
public virtual System.Threading.Tasks.Task<Azure.Response> DecommissionModelAsync(string modelId, Azure.DigitalTwins.Core.DecomissionModelOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
7474
public virtual Azure.Response DeleteDigitalTwin(string digitalTwinId, Azure.DigitalTwins.Core.DeleteDigitalTwinOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
@@ -79,10 +79,10 @@ public DigitalTwinsClient(System.Uri endpoint, Azure.Core.TokenCredential creden
7979
public virtual System.Threading.Tasks.Task<Azure.Response> DeleteModelAsync(string modelId, Azure.DigitalTwins.Core.DeleteModelOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
8080
public virtual Azure.Response DeleteRelationship(string digitalTwinId, string relationshipId, Azure.DigitalTwins.Core.DeleteRelationshipOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
8181
public virtual System.Threading.Tasks.Task<Azure.Response> DeleteRelationshipAsync(string digitalTwinId, string relationshipId, Azure.DigitalTwins.Core.DeleteRelationshipOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
82-
public virtual Azure.Response<string> GetComponent(string digitalTwinId, string componentName, Azure.DigitalTwins.Core.GetComponentOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
83-
public virtual System.Threading.Tasks.Task<Azure.Response<string>> GetComponentAsync(string digitalTwinId, string componentName, Azure.DigitalTwins.Core.GetComponentOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
84-
public virtual Azure.Response<string> GetDigitalTwin(string digitalTwinId, Azure.DigitalTwins.Core.GetDigitalTwinOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
85-
public virtual System.Threading.Tasks.Task<Azure.Response<string>> GetDigitalTwinAsync(string digitalTwinId, Azure.DigitalTwins.Core.GetDigitalTwinOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
82+
public virtual System.Threading.Tasks.Task<Azure.Response<T>> GetComponentAsync<T>(string digitalTwinId, string componentName, Azure.DigitalTwins.Core.GetComponentOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
83+
public virtual Azure.Response<T> GetComponent<T>(string digitalTwinId, string componentName, Azure.DigitalTwins.Core.GetComponentOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
84+
public virtual System.Threading.Tasks.Task<Azure.Response<T>> GetDigitalTwinAsync<T>(string digitalTwinId, Azure.DigitalTwins.Core.GetDigitalTwinOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
85+
public virtual Azure.Response<T> GetDigitalTwin<T>(string digitalTwinId, Azure.DigitalTwins.Core.GetDigitalTwinOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
8686
public virtual Azure.Response<Azure.DigitalTwins.Core.EventRoute> GetEventRoute(string eventRouteId, Azure.DigitalTwins.Core.GetEventRouteOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
8787
public virtual System.Threading.Tasks.Task<Azure.Response<Azure.DigitalTwins.Core.EventRoute>> GetEventRouteAsync(string eventRouteId, Azure.DigitalTwins.Core.GetEventRouteOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
8888
public virtual Azure.Pageable<Azure.DigitalTwins.Core.EventRoute> GetEventRoutes(Azure.DigitalTwins.Core.GetEventRoutesOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
@@ -93,10 +93,10 @@ public DigitalTwinsClient(System.Uri endpoint, Azure.Core.TokenCredential creden
9393
public virtual System.Threading.Tasks.Task<Azure.Response<Azure.DigitalTwins.Core.DigitalTwinsModelData>> GetModelAsync(string modelId, Azure.DigitalTwins.Core.GetModelOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
9494
public virtual Azure.Pageable<Azure.DigitalTwins.Core.DigitalTwinsModelData> GetModels(Azure.DigitalTwins.Core.GetModelsOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
9595
public virtual Azure.AsyncPageable<Azure.DigitalTwins.Core.DigitalTwinsModelData> GetModelsAsync(Azure.DigitalTwins.Core.GetModelsOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
96-
public virtual Azure.Response<string> GetRelationship(string digitalTwinId, string relationshipId, Azure.DigitalTwins.Core.GetRelationshipOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
97-
public virtual System.Threading.Tasks.Task<Azure.Response<string>> GetRelationshipAsync(string digitalTwinId, string relationshipId, Azure.DigitalTwins.Core.GetRelationshipOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
96+
public virtual System.Threading.Tasks.Task<Azure.Response<T>> GetRelationshipAsync<T>(string digitalTwinId, string relationshipId, Azure.DigitalTwins.Core.GetRelationshipOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
9897
public virtual Azure.Pageable<string> GetRelationships(string digitalTwinId, string relationshipName = null, Azure.DigitalTwins.Core.GetRelationshipsOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
9998
public virtual Azure.AsyncPageable<string> GetRelationshipsAsync(string digitalTwinId, string relationshipName = null, Azure.DigitalTwins.Core.GetRelationshipsOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
99+
public virtual Azure.Response<T> GetRelationship<T>(string digitalTwinId, string relationshipId, Azure.DigitalTwins.Core.GetRelationshipOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
100100
public virtual Azure.Response PublishComponentTelemetry(string digitalTwinId, string componentName, string messageId, string payload, Azure.DigitalTwins.Core.PublishComponentTelemetryOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
101101
public virtual System.Threading.Tasks.Task<Azure.Response> PublishComponentTelemetryAsync(string digitalTwinId, string componentName, string messageId, string payload, Azure.DigitalTwins.Core.PublishComponentTelemetryOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
102102
public virtual Azure.Response PublishTelemetry(string digitalTwinId, string messageId, string payload, Azure.DigitalTwins.Core.PublishTelemetryOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }

sdk/digitaltwins/Azure.DigitalTwins.Core/samples/DigitalTwinsClientSample/ComponentSamples.cs

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -74,23 +74,21 @@ await client.CreateModelsAsync(
7474
},
7575
};
7676

77-
string basicDtPayload = JsonSerializer.Serialize(basicTwin);
78-
79-
await client.CreateDigitalTwinAsync(basicDtId, basicDtPayload);
80-
Console.WriteLine($"Created digital twin '{basicDtId}'.");
77+
Response<BasicDigitalTwin> createDigitalTwinResponse = await client.CreateDigitalTwinAsync<BasicDigitalTwin>(basicDtId, basicTwin);
78+
Console.WriteLine($"Created digital twin '{createDigitalTwinResponse.Value.Id}'.");
8179

8280
#endregion Snippet:DigitalTwinsSampleCreateBasicTwin
8381

84-
// You can also get a digital twin and deserialize it into a BasicDigitalTwin.
82+
// You can also get a digital twin as a BasicDigitalTwin type.
8583
// It works well for basic stuff, but as you can see it gets more difficult when delving into
8684
// more complex properties, like components.
8785

8886
#region Snippet:DigitalTwinsSampleGetBasicDigitalTwin
8987

90-
Response<string> getBasicDtResponse = await client.GetDigitalTwinAsync(basicDtId);
88+
Response<BasicDigitalTwin> getBasicDtResponse = await client.GetDigitalTwinAsync<BasicDigitalTwin>(basicDtId);
9189
if (getBasicDtResponse.GetRawResponse().Status == (int)HttpStatusCode.OK)
9290
{
93-
BasicDigitalTwin basicDt = JsonSerializer.Deserialize<BasicDigitalTwin>(getBasicDtResponse.Value);
91+
BasicDigitalTwin basicDt = getBasicDtResponse.Value;
9492

9593
// Must cast Component1 as a JsonElement and get its raw text in order to deserialize it as a dictionary
9694
string component1RawText = ((JsonElement)basicDt.CustomProperties["Component1"]).GetRawText();
@@ -120,26 +118,24 @@ await client.CreateModelsAsync(
120118
Metadata = { ModelId = modelId },
121119
Prop1 = "Prop1 val",
122120
Prop2 = 987,
123-
Component1 = new Component1
121+
Component1 = new MyCustomComponent
124122
{
125123
ComponentProp1 = "Component prop1 val",
126124
ComponentProp2 = 123,
127125
}
128126
};
129-
string dt2Payload = JsonSerializer.Serialize(customTwin);
130-
131-
await client.CreateDigitalTwinAsync(customDtId, dt2Payload);
132-
Console.WriteLine($"Created digital twin '{customDtId}'.");
127+
Response<CustomDigitalTwin> createCustomDigitalTwinResponse = await client.CreateDigitalTwinAsync<CustomDigitalTwin>(customDtId, customTwin);
128+
Console.WriteLine($"Created digital twin '{createCustomDigitalTwinResponse.Value.Id}'.");
133129

134130
#endregion Snippet:DigitalTwinsSampleCreateCustomTwin
135131

136-
// Getting and deserializing a digital twin into a custom data type is extremely easy.
132+
// Getting a digital twin as a custom data type is extremely easy.
137133
// Custom types provide the best possible experience.
138134

139135
#region Snippet:DigitalTwinsSampleGetCustomDigitalTwin
140136

141-
Response<string> getCustomDtResponse = await client.GetDigitalTwinAsync(customDtId);
142-
CustomDigitalTwin customDt = JsonSerializer.Deserialize<CustomDigitalTwin>(getCustomDtResponse.Value);
137+
Response<CustomDigitalTwin> getCustomDtResponse = await client.GetDigitalTwinAsync<CustomDigitalTwin>(customDtId);
138+
CustomDigitalTwin customDt = getCustomDtResponse.Value;
143139
Console.WriteLine($"Retrieved and deserialized digital twin {customDt.Id}:\n\t" +
144140
$"ETag: {customDt.ETag}\n\t" +
145141
$"Prop1: {customDt.Prop1}\n\t" +
@@ -164,7 +160,7 @@ await client.CreateModelsAsync(
164160

165161
#region Snippet:DigitalTwinsSampleGetComponent
166162

167-
await client.GetComponentAsync(basicDtId, SamplesConstants.ComponentName);
163+
await client.GetComponentAsync<MyCustomComponent>(basicDtId, SamplesConstants.ComponentName);
168164
Console.WriteLine($"Retrieved component for digital twin '{basicDtId}'.");
169165

170166
#endregion Snippet:DigitalTwinsSampleGetComponent

sdk/digitaltwins/Azure.DigitalTwins.Core/samples/DigitalTwinsClientSample/CustomDigitalTwin.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ internal class CustomDigitalTwin
2828
public int Prop2 { get; set; }
2929

3030
[JsonPropertyName("Component1")]
31-
public Component1 Component1 { get; set; }
31+
public MyCustomComponent Component1 { get; set; }
3232
}
3333

34-
internal class Component1
34+
internal class MyCustomComponent
3535
{
3636
[JsonPropertyName("$metadata")]
3737
public Component1Metadata Metadata { get; set; } = new Component1Metadata();

sdk/digitaltwins/Azure.DigitalTwins.Core/samples/DigitalTwinsClientSample/DigitalTwinsLifecycleSamples.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -253,10 +253,11 @@ public async Task CreateAllTwinsAsync()
253253
{
254254
try
255255
{
256-
Response<string> response = await client.CreateDigitalTwinAsync(twin.Key, twin.Value);
256+
BasicDigitalTwin basicDigitalTwin = JsonSerializer.Deserialize<BasicDigitalTwin>(twin.Value);
257+
Response<BasicDigitalTwin> response = await client.CreateDigitalTwinAsync<BasicDigitalTwin>(twin.Key, basicDigitalTwin);
257258

258259
Console.WriteLine($"Created digital twin '{twin.Key}'.");
259-
Console.WriteLine($"\tBody: {response?.Value}");
260+
Console.WriteLine($"\tBody: {JsonSerializer.Serialize(response?.Value)}");
260261
}
261262
catch (Exception ex)
262263
{
@@ -351,14 +352,13 @@ public async Task ConnectTwinsTogetherAsync()
351352
{
352353
try
353354
{
354-
string serializedRelationship = JsonSerializer.Serialize(relationship);
355-
356-
await client.CreateRelationshipAsync(
355+
Response<BasicRelationship> createRelationshipResponse = await client.CreateRelationshipAsync<BasicRelationship>(
357356
relationship.SourceId,
358357
relationship.Id,
359-
serializedRelationship);
358+
relationship);
360359

361-
Console.WriteLine($"Linked twin '{relationship.SourceId}' to twin '{relationship.TargetId}' as '{relationship.Name}'");
360+
Console.WriteLine($"Linked twin '{createRelationshipResponse.Value.SourceId}' to twin " +
361+
$"'{createRelationshipResponse.Value.TargetId}' as '{createRelationshipResponse.Value.Name}'");
362362
}
363363
catch (RequestFailedException ex) when (ex.Status == (int)HttpStatusCode.Conflict)
364364
{

sdk/digitaltwins/Azure.DigitalTwins.Core/samples/DigitalTwinsClientSample/Program.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,10 @@
22
// Licensed under the MIT License.
33

44
using System;
5-
using System.Net.Http;
65
using System.Threading.Tasks;
7-
using Azure.Core.Pipeline;
86
using Azure.DigitalTwins.Samples;
97
using Azure.Identity;
108
using CommandLine;
11-
using CommandLine.Text;
129

1310
namespace Azure.DigitalTwins.Core.Samples
1411
{

0 commit comments

Comments
 (0)