DigitalTwinsClient Class
- java.
lang. Object - com.
azure. digitaltwins. core. DigitalTwinsClient
- com.
public final class DigitalTwinsClient
This class provides a client for interacting synchronously with an Azure Digital Twins instance. This client is instantiated through DigitalTwinsClientBuilder.
Code Samples
DigitalTwinsClient digitalTwinsSyncClient = new DigitalTwinsClientBuilder().credential(
new ClientSecretCredentialBuilder().tenantId(tenantId)
.clientId(clientId)
.clientSecret(clientSecret)
.build()).endpoint(digitalTwinsEndpointUrl).buildClient();
This client allows for management of digital twins, their components, and their relationships. It also allows for managing the digital twin models and event routes tied to your Azure Digital Twins instance.
Method Summary
Methods inherited from java.lang.Object
Method Details
createModels
public Iterable<DigitalTwinsModelData> createModels(Iterable<String> dtdlModels)
Creates one or many models.
Code Samples
Iterable<DigitalTwinsModelData> createdModels = digitalTwinsSyncClient.createModels(
Arrays.asList(model1, model2, model3));
createdModels.forEach(model -> System.out.println("Retrieved model with Id: " + model.getModelId()));
Parameters:
Returns:
createModelsWithResponse
public Response<Iterable<DigitalTwinsModelData>> createModelsWithResponse(Iterable<String> dtdlModels, Context context)
Creates one or many models.
Code Samples
Response<Iterable<DigitalTwinsModelData>> createdModels = digitalTwinsSyncClient.createModelsWithResponse(
Arrays.asList(model1, model2, model3), new Context("key", "value"));
System.out.println("Received HTTP response of " + createdModels.getStatusCode());
createdModels.getValue().forEach(model -> System.out.println("Retrieved model with Id: " + model.getModelId()));
Parameters:
Returns:
createOrReplaceDigitalTwin
public T <T>createOrReplaceDigitalTwin(String digitalTwinId, T digitalTwin, Class<T> clazz)
Creates a digital twin. If the provided digital twin ID is already in use, then this will attempt to replace the existing digital twin with the provided digital twin.
Code Samples
A strongly typed digital twin object such as BasicDigitalTwin can be provided as the input parameter:
String modelId = "dtmi:com:samples:Building;1";
BasicDigitalTwin basicTwin = new BasicDigitalTwin("myDigitalTwinId").setMetadata(
new BasicDigitalTwinMetadata().setModelId(modelId));
BasicDigitalTwin createdTwin = digitalTwinsClient.createOrReplaceDigitalTwin(basicTwin.getId(), basicTwin,
BasicDigitalTwin.class);
System.out.println("Created digital twin with Id: " + createdTwin.getId());
Or alternatively String can be used as input and output type:
String stringResult = digitalTwinsClient.createOrReplaceDigitalTwin("myDigitalTwinId", digitalTwinStringPayload,
String.class);
System.out.println("Created digital twin: " + stringResult);
Parameters:
Returns:
createOrReplaceDigitalTwinWithResponse
public Response<T> <T>createOrReplaceDigitalTwinWithResponse(String digitalTwinId, T digitalTwin, Class<T> clazz, CreateOrReplaceDigitalTwinOptions options, Context context)
Creates a digital twin. If the provided digital twin ID is already in use, then this will attempt to replace the existing digital twin with the provided digital twin.
Code Samples
A strongly typed digital twin object type such as BasicDigitalTwin can be provided as the input parameter:
String modelId = "dtmi:com:samples:Building;1";
BasicDigitalTwin basicDigitalTwin = new BasicDigitalTwin("myDigitalTwinId").setMetadata(
new BasicDigitalTwinMetadata().setModelId(modelId));
Response<BasicDigitalTwin> resultWithResponse = digitalTwinsClient.createOrReplaceDigitalTwinWithResponse(
basicDigitalTwin.getId(), basicDigitalTwin, BasicDigitalTwin.class, new CreateOrReplaceDigitalTwinOptions(),
new Context("Key", "Value"));
System.out.println("Response http status: " + resultWithResponse.getStatusCode() + " created digital twin Id: "
+ resultWithResponse.getValue().getId());
Or alternatively String can be used as input and output type:
String stringResult = digitalTwinsClient.createOrReplaceDigitalTwin("myDigitalTwinId", digitalTwinStringPayload,
String.class);
System.out.println("Created digital twin: " + stringResult);
Parameters:
Returns:
createOrReplaceEventRoute
public void createOrReplaceEventRoute(String eventRouteId, DigitalTwinsEventRoute eventRoute)
Create an event route. If the provided eventRouteId is already in use, then this will attempt to replace the existing event route with the provided event route.
Code Samples
String filter
= "$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'";
DigitalTwinsEventRoute eventRoute = new DigitalTwinsEventRoute("myEndpointName").setFilter(filter);
digitalTwinsSyncClient.createOrReplaceEventRoute("myEventRouteId", eventRoute);
Parameters:
createOrReplaceEventRouteWithResponse
public Response<Void> createOrReplaceEventRouteWithResponse(String eventRouteId, DigitalTwinsEventRoute eventRoute, Context context)
Create an event route. If the provided eventRouteId is already in use, then this will attempt to replace the existing event route with the provided event route.
Code Samples
String filter
= "$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'";
DigitalTwinsEventRoute eventRoute = new DigitalTwinsEventRoute("myEndpointName").setFilter(filter);
Response<Void> response = digitalTwinsSyncClient.createOrReplaceEventRouteWithResponse("myEventRouteId",
eventRoute, new Context("key", "value"));
System.out.println("Created an event rout with HTTP status code: " + response.getStatusCode());
Parameters:
Returns:
createOrReplaceRelationship
public T <T>createOrReplaceRelationship(String digitalTwinId, String relationshipId, T relationship, Class<T> clazz)
Creates a relationship on a digital twin. If the provided relationship ID is already in use, then this will attempt to replace the existing relationship with the provided relationship.
Code Samples
A strongly typed digital twin object such as BasicRelationship can be provided as the input parameter to deserialize the response into.
BasicRelationship buildingToFloorBasicRelationship = new BasicRelationship("myRelationshipId",
"mySourceDigitalTwinId", "myTargetDigitalTwinId", "contains").addProperty("Prop1", "Prop1 value")
.addProperty("Prop2", 6);
BasicRelationship createdRelationship = digitalTwinsSyncClient.createOrReplaceRelationship(
"mySourceDigitalTwinId", "myRelationshipId", buildingToFloorBasicRelationship, BasicRelationship.class);
System.out.println("Created relationship with Id: " + createdRelationship.getId() + " from: "
+ createdRelationship.getSourceId() + " to: " + createdRelationship.getTargetId());
Or alternatively String can be used as input and output deserialization type:
String relationshipPayload = getRelationshipPayload();
String createdRelationshipString = digitalTwinsSyncClient.createOrReplaceRelationship("mySourceDigitalTwinId",
"myRelationshipId", relationshipPayload, String.class);
System.out.println("Created relationship: " + createdRelationshipString);
Parameters:
Returns:
createOrReplaceRelationshipWithResponse
public DigitalTwinsResponse<T> <T>createOrReplaceRelationshipWithResponse(String digitalTwinId, String relationshipId, T relationship, Class<T> clazz, CreateOrReplaceRelationshipOptions options, Context context)
Creates a relationship on a digital twin. If the provided relationship ID is already in use, then this will attempt to replace the existing relationship with the provided relationship.
Code Samples
A strongly typed digital twin object such as BasicRelationship can be provided as the input parameter to deserialize the response into.
BasicRelationship buildingToFloorBasicRelationship = new BasicRelationship("myRelationshipId",
"mySourceDigitalTwinId", "myTargetDigitalTwinId", "contains").addProperty("Prop1", "Prop1 value")
.addProperty("Prop2", 6);
Response<BasicRelationship> createdRelationshipWithResponse
= digitalTwinsSyncClient.createOrReplaceRelationshipWithResponse("mySourceDigitalTwinId",
"myRelationshipId", buildingToFloorBasicRelationship, BasicRelationship.class,
new CreateOrReplaceRelationshipOptions(), new Context("key", "value"));
System.out.println(
"Created relationship with Id: " + createdRelationshipWithResponse.getValue().getId() + " from: "
+ createdRelationshipWithResponse.getValue().getSourceId() + " to: "
+ createdRelationshipWithResponse.getValue().getTargetId() + " Http status code: "
+ createdRelationshipWithResponse.getStatusCode());
Or alternatively String can be used as input and output deserialization type:
String relationshipPayload = getRelationshipPayload();
Response<String> createdRelationshipStringWithResponse
= digitalTwinsSyncClient.createOrReplaceRelationshipWithResponse("mySourceDigitalTwinId",
"myRelationshipId", relationshipPayload, String.class, new CreateOrReplaceRelationshipOptions(),
new Context("key", "value"));
System.out.println("Created relationship: " + createdRelationshipStringWithResponse + " With HTTP status code: "
+ createdRelationshipStringWithResponse.getStatusCode());
Parameters:
Returns:
decommissionModel
public void decommissionModel(String modelId)
Decommissions a model.
Code Samples
digitalTwinsSyncClient.decommissionModel("dtmi:com:samples:Building;1");
Parameters:
decommissionModelWithResponse
public Response<Void> decommissionModelWithResponse(String modelId, Context context)
Decommissions a model.
Code Samples
Response<Void> response = digitalTwinsSyncClient.decommissionModelWithResponse("dtmi:com:samples:Building;1",
new Context("key", "value"));
System.out.println("Received decommission operation HTTP response with status: " + response.getStatusCode());
Parameters:
Returns:
deleteDigitalTwin
public void deleteDigitalTwin(String digitalTwinId)
Deletes a digital twin. All relationships referencing the digital twin must already be deleted.
Code Samples
digitalTwinsClient.deleteDigitalTwin("myDigitalTwinId");
Parameters:
deleteDigitalTwinWithResponse
public Response<Void> deleteDigitalTwinWithResponse(String digitalTwinId, DeleteDigitalTwinOptions options, Context context)
Deletes a digital twin. All relationships referencing the digital twin must already be deleted.
Code Samples
Response<Void> response = digitalTwinsClient.deleteDigitalTwinWithResponse("myDigitalTwinId",
new DeleteDigitalTwinOptions(), new Context("key", "value"));
System.out.println("Deleted digital twin HTTP response status code: " + response.getStatusCode());
Parameters:
Returns:
deleteEventRoute
public void deleteEventRoute(String eventRouteId)
Delete an event route.
Code Samples
digitalTwinsSyncClient.deleteEventRoute("myEventRouteId");
Parameters:
deleteEventRouteWithResponse
public Response<Void> deleteEventRouteWithResponse(String eventRouteId, Context context)
Delete an event route.
Code Samples
Response<Void> deleteResponse = digitalTwinsSyncClient.deleteEventRouteWithResponse("myEventRouteId",
new Context("key", "value"));
System.out.println(
"Received delete event route operation response with HTTP status code: " + deleteResponse.getStatusCode());
Parameters:
Returns:
deleteModel
public void deleteModel(String modelId)
Deletes a model.
Code Samples
digitalTwinsSyncClient.deleteModel("dtmi:com:samples:Building;1");
Parameters:
deleteModelWithResponse
public Response<Void> deleteModelWithResponse(String modelId, Context context)
Deletes a model.
Code Samples
Response<Void> response = digitalTwinsSyncClient.deleteModelWithResponse("dtmi:com:samples:Building;1",
new Context("key", "value"));
System.out.println("Received delete model operation HTTP response with status: " + response.getStatusCode());
Parameters:
Returns:
deleteRelationship
public void deleteRelationship(String digitalTwinId, String relationshipId)
Deletes a relationship on a digital twin.
Code Samples
digitalTwinsSyncClient.deleteRelationship("myDigitalTwinId", "myRelationshipId");
Parameters:
deleteRelationshipWithResponse
public Response<Void> deleteRelationshipWithResponse(String digitalTwinId, String relationshipId, DeleteRelationshipOptions options, Context context)
Deletes a relationship on a digital twin.
Code Samples
Response<Void> deleteResponse = digitalTwinsSyncClient.deleteRelationshipWithResponse("myDigitalTwinId",
"myRelationshipId", new DeleteRelationshipOptions(), new Context("key", "value"));
System.out.println("Deleted relationship with HTTP status code: " + deleteResponse.getStatusCode());
Parameters:
Returns:
getComponent
public T <T>getComponent(String digitalTwinId, String componentName, Class<T> clazz)
Get a component of a digital twin.
Code Samples
String componentString = digitalTwinsSyncClient.getComponent("myDigitalTwinId", "myComponentName",
String.class);
System.out.println("Retrieved component: " + componentString);
Parameters:
Returns:
getComponentWithResponse
public DigitalTwinsResponse<T> <T>getComponentWithResponse(String digitalTwinId, String componentName, Class<T> clazz, Context context)
Get a component of a digital twin.
Code Samples
Response<String> componentStringWithResponse = digitalTwinsSyncClient.getComponentWithResponse(
"myDigitalTwinId", "myComponentName", String.class, new Context("key", "value"));
System.out.println("Received component get operation response with HTTP status code: "
+ componentStringWithResponse.getStatusCode());
Parameters:
Returns:
getDigitalTwin
public T <T>getDigitalTwin(String digitalTwinId, Class<T> clazz)
Gets a digital twin.
Code Samples
A Strongly typed object type such as BasicDigitalTwin can be provided as an input parameter for clazz to indicate what type is used to deserialize the response.
BasicDigitalTwin basicTwinResult = digitalTwinsClient.getDigitalTwin("myDigitalTwinId", BasicDigitalTwin.class);
System.out.println("Retrieved digital twin with Id: " + basicTwinResult.getId());
Alternatively String can be used to get the response in a json string format.
String stringResult = digitalTwinsClient.getDigitalTwin("myDigitalTwinId", String.class);
System.out.println("Retrieved digital twin: " + stringResult);
Parameters:
Returns:
getDigitalTwinWithResponse
public DigitalTwinsResponse<T> <T>getDigitalTwinWithResponse(String digitalTwinId, Class<T> clazz, Context context)
Gets a digital twin.
Code Samples
A Strongly typed object type such as BasicDigitalTwin can be provided as an input parameter for clazz to indicate what type is used to deserialize the response.
Response<BasicDigitalTwin> basicTwinResultWithResponse = digitalTwinsClient.getDigitalTwinWithResponse(
"myDigitalTwinId", BasicDigitalTwin.class, new Context("key", "value"));
System.out.println("Http status code: " + basicTwinResultWithResponse.getStatusCode());
System.out.println("Retrieved digital twin with Id: " + basicTwinResultWithResponse.getValue().getId());
Alternatively String can be used to get the response in a json string format.
Response<String> stringResultWithResponse = digitalTwinsClient.getDigitalTwinWithResponse("myDigitalTwinId",
String.class, new Context("key", "value"));
System.out.println("Http response status: " + stringResultWithResponse.getStatusCode());
System.out.println("Retrieved digital twin: " + stringResultWithResponse.getValue());
Parameters:
Returns:
getEventRoute
public DigitalTwinsEventRoute getEventRoute(String eventRouteId)
Get an event route.
Code Samples
DigitalTwinsEventRoute eventRoute = digitalTwinsSyncClient.getEventRoute("myEventRouteId");
System.out.println("Retrieved event route with Id: " + eventRoute.getEventRouteId());
Parameters:
Returns:
getEventRouteWithResponse
public Response<DigitalTwinsEventRoute> getEventRouteWithResponse(String eventRouteId, Context context)
Get an event route.
Code Samples
Response<DigitalTwinsEventRoute> eventRouteWithResponse = digitalTwinsSyncClient.getEventRouteWithResponse(
"myEventRouteId", new Context("key", "value"));
System.out.println("Received get event route operation response with HTTP status code: "
+ eventRouteWithResponse.getStatusCode());
System.out.println("Retrieved event route with Id: " + eventRouteWithResponse.getValue().getEventRouteId());
Parameters:
Returns:
getModel
public DigitalTwinsModelData getModel(String modelId)
Gets a model, including the model metadata and the model definition.
Code Samples
DigitalTwinsModelData model = digitalTwinsSyncClient.getModel("dtmi:com:samples:Building;1");
System.out.println("Retrieved model with Id: " + model.getModelId());
Parameters:
Returns:
getModelWithResponse
public Response<DigitalTwinsModelData> getModelWithResponse(String modelId, Context context)
Gets a model, including the model metadata and the model definition.
Code Samples
Response<DigitalTwinsModelData> modelWithResponse = digitalTwinsSyncClient.getModelWithResponse(
"dtmi:com:samples:Building;1", new Context("key", "value"));
System.out.println("Received HTTP response with status code: " + modelWithResponse.getStatusCode());
System.out.println("Retrieved model with Id: " + modelWithResponse.getValue().getModelId());
Parameters:
Returns:
getRelationship
public T <T>getRelationship(String digitalTwinId, String relationshipId, Class<T> clazz)
Gets a relationship on a digital twin.
Code Samples
A strongly typed digital twin object such as BasicRelationship can be provided as the input parameter to deserialize the response into.
BasicRelationship retrievedRelationship = digitalTwinsSyncClient.getRelationship("myDigitalTwinId",
"myRelationshipName", BasicRelationship.class);
System.out.println("Retrieved relationship with Id: " + retrievedRelationship.getId() + " from: "
+ retrievedRelationship.getSourceId() + " to: " + retrievedRelationship.getTargetId());
Or alternatively String can be used as input and output deserialization type:
String retrievedRelationshipString = digitalTwinsSyncClient.getRelationship("myDigitalTwinId",
"myRelationshipName", String.class);
System.out.println("Retrieved relationship: " + retrievedRelationshipString);
Parameters:
Returns:
getRelationshipWithResponse
public DigitalTwinsResponse<T> <T>getRelationshipWithResponse(String digitalTwinId, String relationshipId, Class<T> clazz, Context context)
Gets a relationship on a digital twin.
Code Samples
A strongly typed digital twin object such as BasicRelationship can be provided as the input parameter to deserialize the response into.
Response<BasicRelationship> retrievedRelationshipWithResponse
= digitalTwinsSyncClient.getRelationshipWithResponse("myDigitalTwinId", "myRelationshipName",
BasicRelationship.class, new Context("key", "value"));
System.out.println(
"Retrieved relationship with Id: " + retrievedRelationshipWithResponse.getValue().getId() + " from: "
+ retrievedRelationshipWithResponse.getValue().getSourceId() + " to: "
+ retrievedRelationshipWithResponse.getValue().getTargetId() + "HTTP status code: "
+ retrievedRelationshipWithResponse.getStatusCode());
Or alternatively String can be used as input and output deserialization type:
Response<String> retrievedRelationshipString = digitalTwinsSyncClient.getRelationshipWithResponse(
"myDigitalTwinId", "myRelationshipName", String.class, new Context("key", "value"));
System.out.println("Retrieved relationship: " + retrievedRelationshipString + " HTTP status code: "
+ retrievedRelationshipString.getStatusCode());
Parameters:
Returns:
getServiceVersion
public DigitalTwinsServiceVersion getServiceVersion()
Gets the Azure Digital Twins service API version that this client is configured to use for all service requests. Unless configured while building this client through serviceVersion(DigitalTwinsServiceVersion serviceVersion), this value will be equal to the latest service API version supported by this client.
Returns:
listEventRoutes
public PagedIterable<DigitalTwinsEventRoute> listEventRoutes()
List all the event routes that exist in your digital twins instance.
Code Samples
PagedIterable<DigitalTwinsEventRoute> listResponse = digitalTwinsSyncClient.listEventRoutes();
listResponse.forEach(
eventRoute -> System.out.println("Retrieved event route with Id: " + eventRoute.getEventRouteId()));
Returns:
listEventRoutes
public PagedIterable<DigitalTwinsEventRoute> listEventRoutes(ListDigitalTwinsEventRoutesOptions options, Context context)
List all the event routes that exist in your digital twins instance.
Code Samples
PagedIterable<DigitalTwinsEventRoute> listResponseWithOptions = digitalTwinsSyncClient.listEventRoutes(
new ListDigitalTwinsEventRoutesOptions().setMaxItemsPerPage(5), new Context("key", "value"));
listResponseWithOptions.forEach(
eventRoute -> System.out.println("Retrieved event route with Id: " + eventRoute.getEventRouteId()));
Parameters:
Returns:
listIncomingRelationships
public PagedIterable<IncomingRelationship> listIncomingRelationships(String digitalTwinId)
List the relationships that have a given digital twin as the target.
Code Samples
PagedIterable<IncomingRelationship> pagedIncomingRelationships
= digitalTwinsSyncClient.listIncomingRelationships("myDigitalTwinId", new Context("key", "value"));
for (IncomingRelationship rel : pagedIncomingRelationships) {
System.out.println(
"Retrieved relationship with Id: " + rel.getRelationshipId() + " from: " + rel.getSourceId()
+ " to: myDigitalTwinId");
}
Parameters:
Returns:
listIncomingRelationships
public PagedIterable<IncomingRelationship> listIncomingRelationships(String digitalTwinId, Context context)
List the relationships that have a given digital twin as the target.
Code Samples
PagedIterable<IncomingRelationship> pagedIncomingRelationshipsWithContext
= digitalTwinsSyncClient.listIncomingRelationships("myDigitalTwinId", new Context("key", "value"));
for (IncomingRelationship rel : pagedIncomingRelationshipsWithContext) {
System.out.println(
"Retrieved relationship with Id: " + rel.getRelationshipId() + " from: " + rel.getSourceId()
+ " to: myDigitalTwinId");
}
Parameters:
Returns:
listModels
public PagedIterable<DigitalTwinsModelData> listModels()
List all the models in this digital twins instance.
Code Samples
PagedIterable<DigitalTwinsModelData> modelsListPagedIterable = digitalTwinsSyncClient.listModels();
modelsListPagedIterable.forEach(
model -> System.out.println("Retrieved a model with Id: " + model.getModelId()));
Returns:
listModels
public PagedIterable<DigitalTwinsModelData> listModels(ListModelsOptions options, Context context)
List the models in this digital twins instance based on some options.
Code Samples
PagedIterable<DigitalTwinsModelData> modelsListWithOptionsPagedIterable = digitalTwinsSyncClient.listModels(
new ListModelsOptions().setIncludeModelDefinition(true).setMaxItemsPerPage(5), new Context("key", "value"));
modelsListWithOptionsPagedIterable.forEach(
model -> System.out.println("Retrieved a model with Id: " + model.getModelId()));
Parameters:
Returns:
listRelationships
public PagedIterable<T> <T>listRelationships(String digitalTwinId, Class<T> clazz)
List the relationships that have a given digital twin as the source.
Code Samples
A strongly typed digital twin object such as BasicRelationship can be provided as the input parameter to deserialize the response into.
PagedIterable<BasicRelationship> pagedRelationshipsByItem = digitalTwinsSyncClient.listRelationships(
"myDigitalTwinId", BasicRelationship.class);
for (BasicRelationship rel : pagedRelationshipsByItem) {
System.out.println("Retrieved relationship with Id: " + rel.getId());
}
Or alternatively String can be used as input and output deserialization type:
PagedIterable<String> pagedRelationshipsStringByItem = digitalTwinsSyncClient.listRelationships(
"myDigitalTwinId", String.class);
for (String rel : pagedRelationshipsStringByItem) {
System.out.println("Retrieved relationship: " + rel);
}
Parameters:
Returns:
listRelationships
public PagedIterable<T> <T>listRelationships(String digitalTwinId, String relationshipName, Class<T> clazz, Context context)
List the relationships that have a given digital twin as the source and that have the given relationship name.
Code Samples
A strongly typed digital twin object such as BasicRelationship can be provided as the input parameter to deserialize the response into.
PagedIterable<BasicRelationship> pagedRelationshipByNameByItem = digitalTwinsSyncClient.listRelationships(
"myDigitalTwinId", "myRelationshipName", BasicRelationship.class, new Context("Key", "value"));
for (BasicRelationship rel : pagedRelationshipByNameByItem) {
System.out.println("Retrieved relationship with Id: " + rel.getId());
}
Or alternatively String can be used as input and output deserialization type:
PagedIterable<String> pagedRelationshipsStringByNameByItem = digitalTwinsSyncClient.listRelationships(
"myDigitalTwinId", "myRelationshipId", String.class, new Context("key", "value"));
for (String rel : pagedRelationshipsStringByNameByItem) {
System.out.println("Retrieved relationship: " + rel);
}
Parameters:
Returns:
publishComponentTelemetry
public void publishComponentTelemetry(String digitalTwinId, String componentName, String messageId, Object payload)
Publishes telemetry from a digital twin's component
Code Samples
A strongly typed object such as Hashtable can be provided as the input parameter for the telemetry payload.
Dictionary<String, Integer> telemetryPayload = new Hashtable<>();
telemetryPayload.put("Telemetry1", 5);
digitalTwinsSyncClient.publishComponentTelemetry("myDigitalTwinId", "myComponentName",
UUID.randomUUID().toString(), telemetryPayload);
Or alternatively String can be used as input type to construct the json string telemetry payload:
digitalTwinsSyncClient.publishComponentTelemetry("myDigitalTwinId", "myComponentName",
UUID.randomUUID().toString(), "{\"Telemetry1\": 5}");
The result is then consumed by one or many destination endpoints (subscribers) defined under DigitalTwinsEventRoute. These event routes need to be set before publishing a telemetry message, in order for the telemetry message to be consumed.
Parameters:
publishComponentTelemetryWithResponse
public Response<Void> publishComponentTelemetryWithResponse(String digitalTwinId, String componentName, String messageId, Object payload, PublishComponentTelemetryOptions options, Context context)
Publishes telemetry from a digital twin's component
Code Samples
A strongly typed object such as Hashtable can be provided as the input parameter for the telemetry payload.
Dictionary<String, Integer> telemetryPayload = new Hashtable<>();
telemetryPayload.put("Telemetry1", 5);
Response<Void> responseObject = digitalTwinsSyncClient.publishComponentTelemetryWithResponse("myDigitalTwinId",
"myComponentName", UUID.randomUUID().toString(), telemetryPayload,
new PublishComponentTelemetryOptions().setTimestamp(OffsetDateTime.now(ZoneId.systemDefault())),
new Context("key", "value"));
System.out.println("Received publish component telemetry operation response with HTTP status code: "
+ responseObject.getStatusCode());
Or alternatively String can be used as input type to construct the json string telemetry payload:
Response<Void> responseString = digitalTwinsSyncClient.publishComponentTelemetryWithResponse("myDigitalTwinId",
"myComponentName", UUID.randomUUID().toString(), "{\"Telemetry1\": 5}",
new PublishComponentTelemetryOptions().setTimestamp(OffsetDateTime.now(ZoneId.systemDefault())),
new Context("key", "value"));
System.out.println("Received publish component telemetry operation response with HTTP status code: "
+ responseString.getStatusCode());
The result is then consumed by one or many destination endpoints (subscribers) defined under DigitalTwinsEventRoute. These event routes need to be set before publishing a telemetry message, in order for the telemetry message to be consumed.
Parameters:
Returns:
publishTelemetry
public void publishTelemetry(String digitalTwinId, String messageId, Object payload)
Publishes telemetry from a digital twin
Code Samples
A strongly typed object such as Hashtable can be provided as the input parameter for the telemetry payload.
Dictionary<String, Integer> telemetryPayload = new Hashtable<>();
telemetryPayload.put("Telemetry1", 5);
digitalTwinsSyncClient.publishTelemetry("myDigitalTwinId", UUID.randomUUID().toString(), telemetryPayload);
Or alternatively String can be used as input type to construct the json string telemetry payload:
digitalTwinsSyncClient.publishTelemetry("myDigitalTwinId", UUID.randomUUID().toString(), "{\"Telemetry1\": 5}");
The result is then consumed by one or many destination endpoints (subscribers) defined under DigitalTwinsEventRoute. These event routes need to be set before publishing a telemetry message, in order for the telemetry message to be consumed.
Parameters:
publishTelemetryWithResponse
public Response<Void> publishTelemetryWithResponse(String digitalTwinId, String messageId, Object payload, PublishTelemetryOptions options, Context context)
Publishes telemetry from a digital twin
Code Samples
A strongly typed object such as Hashtable can be provided as the input parameter for the telemetry payload.
Dictionary<String, Integer> telemetryPayload = new Hashtable<>();
telemetryPayload.put("Telemetry1", 5);
Response<Void> responseObject = digitalTwinsSyncClient.publishTelemetryWithResponse("myDigitalTwinId",
UUID.randomUUID().toString(), telemetryPayload,
new PublishTelemetryOptions().setTimestamp(OffsetDateTime.now(ZoneId.systemDefault())),
new Context("key", "value"));
System.out.println(
"Received publish telemetry operation response with HTTP status code: " + responseObject.getStatusCode());
Or alternatively String can be used as input type to construct the json string telemetry payload:
Response<Void> responseString = digitalTwinsSyncClient.publishTelemetryWithResponse("myDigitalTwinId",
UUID.randomUUID().toString(), "{\"Telemetry1\": 5}",
new PublishTelemetryOptions().setTimestamp(OffsetDateTime.now(ZoneId.systemDefault())),
new Context("key", "value"));
System.out.println(
"Received publish telemetry operation response with HTTP status code: " + responseString.getStatusCode());
The result is then consumed by one or many destination endpoints (subscribers) defined under DigitalTwinsEventRoute. These event routes need to be set before publishing a telemetry message, in order for the telemetry message to be consumed.
Parameters:
Returns:
query
public PagedIterable<T> <T>query(String query, Class<T> clazz)
Query digital twins.
Code Samples
A strongly typed digital twin object such as BasicDigitalTwin can be provided as the input parameter to deserialize the response into.
PagedIterable<BasicDigitalTwin> queryResultBasicDigitalTwin = digitalTwinsSyncClient.query(
"SELECT * FROM digitaltwins", BasicDigitalTwin.class);
queryResultBasicDigitalTwin.forEach(
basicTwin -> System.out.println("Retrieved digitalTwin query result with Id: " + basicTwin.getId()));
Or alternatively String can be used as input and output deserialization type:
PagedIterable<String> queryResultString = digitalTwinsSyncClient.query("SELECT * FROM digitaltwins",
String.class);
queryResultString.forEach(
queryResult -> System.out.println("Retrieved digitalTwin query result: " + queryResult));
Note that there may be a delay between before changes in your instance are reflected in queries. For more details on query limitations, see Query limitations
Parameters:
Returns:
query
public PagedIterable<T> <T>query(String query, Class<T> clazz, QueryOptions options, Context context)
Query digital twins.
Code Samples
A strongly typed digital twin object such as BasicDigitalTwin can be provided as the input parameter to deserialize the response into.
PagedIterable<BasicDigitalTwin> queryResultBasicDigitalTwinWithContext = digitalTwinsSyncClient.query(
"SELECT * FROM digitaltwins", BasicDigitalTwin.class, new QueryOptions(), new Context("key", "value"));
queryResultBasicDigitalTwinWithContext.forEach(
basicTwin -> System.out.println("Retrieved digitalTwin query result with Id: " + basicTwin.getId()));
Or alternatively String can be used as input and output deserialization type:
PagedIterable<String> queryResultStringWithContext = digitalTwinsSyncClient.query("SELECT * FROM digitaltwins",
String.class, new QueryOptions(), new Context("key", "value"));
queryResultStringWithContext.forEach(
queryResult -> System.out.println("Retrieved digitalTwin query result: " + queryResult));
Note that there may be a delay between before changes in your instance are reflected in queries. For more details on query limitations, see Query limitations
Parameters:
Returns:
updateComponent
public void updateComponent(String digitalTwinId, String componentName, JsonPatchDocument jsonPatch)
Patch a component on a digital twin.
Code Samples
JsonPatchDocument jsonPatchDocument = new JsonPatchDocument();
jsonPatchDocument.appendReplace("/ComponentProp1", "Some new value");
digitalTwinsSyncClient.updateComponent("myDigitalTwinId", "myComponentName", jsonPatchDocument);
Parameters:
updateComponentWithResponse
public DigitalTwinsResponse<Void> updateComponentWithResponse(String digitalTwinId, String componentName, JsonPatchDocument jsonPatch, UpdateComponentOptions options, Context context)
Patch a component on a digital twin.
Code Samples
JsonPatchDocument jsonPatchDocument = new JsonPatchDocument();
jsonPatchDocument.appendReplace("/ComponentProp1", "Some new value");
Response<Void> updateResponse = digitalTwinsSyncClient.updateComponentWithResponse("myDigitalTwinId",
"myComponentName", jsonPatchDocument, new UpdateComponentOptions(), new Context("key", "value"));
System.out.println("Received update operation HTTP response with status: " + updateResponse.getStatusCode());
Parameters:
Returns:
updateDigitalTwin
public void updateDigitalTwin(String digitalTwinId, JsonPatchDocument jsonPatch)
Updates a digital twin.
Code Samples
Update digital twin by providing list of intended patch operations.
JsonPatchDocument jsonPatchDocument = new JsonPatchDocument();
jsonPatchDocument.appendReplace("Prop1", "newValue");
digitalTwinsClient.updateDigitalTwin("myDigitalTwinId", jsonPatchDocument);
Parameters:
updateDigitalTwinWithResponse
public DigitalTwinsResponse<Void> updateDigitalTwinWithResponse(String digitalTwinId, JsonPatchDocument jsonPatch, UpdateDigitalTwinOptions options, Context context)
Updates a digital twin.
Code Samples
Update digital twin by providing list of intended patch operations.
JsonPatchDocument jsonPatchDocument = new JsonPatchDocument();
jsonPatchDocument.appendReplace("Prop1", "newValue");
Response<Void> response = digitalTwinsClient.updateDigitalTwinWithResponse("myDigitalTwinId", jsonPatchDocument,
new UpdateDigitalTwinOptions(), new Context("key", "value"));
System.out.println("Update completed with HTTP status code: " + response.getStatusCode());
Parameters:
Returns:
updateRelationship
public void updateRelationship(String digitalTwinId, String relationshipId, JsonPatchDocument jsonPatch)
Updates the properties of a relationship on a digital twin.
Code Samples
JsonPatchDocument jsonPatchDocument = new JsonPatchDocument();
jsonPatchDocument.appendReplace("/relationshipProperty1", "new property value");
digitalTwinsSyncClient.updateRelationship("myDigitalTwinId", "myRelationshipId", jsonPatchDocument);
Parameters:
updateRelationshipWithResponse
public DigitalTwinsResponse<Void> updateRelationshipWithResponse(String digitalTwinId, String relationshipId, JsonPatchDocument jsonPatch, UpdateRelationshipOptions options, Context context)
Updates the properties of a relationship on a digital twin.
Code Samples
JsonPatchDocument jsonPatchDocument = new JsonPatchDocument();
jsonPatchDocument.appendReplace("/relationshipProperty1", "new property value");
Response<Void> updateResponse = digitalTwinsSyncClient.updateRelationshipWithResponse("myDigitalTwinId",
"myRelationshipId", jsonPatchDocument, new UpdateRelationshipOptions(), new Context("key", "value"));
System.out.println("Relationship updated with status code: " + updateResponse.getStatusCode());
Parameters:
Returns: