|
3 | 3 | - [Introduction](#introduction)
|
4 | 4 | - [Architecture](#architecture)
|
5 | 5 | - [Identifiers](#identifiers)
|
| 6 | +- [Provider Contract](#provider-contract) |
6 | 7 | - [Operations](#operations)
|
7 | 8 |
|
8 | 9 | ## <a name="introduction">Introduction</a>
|
@@ -44,6 +45,50 @@ A digital twin may be decomposed into digital twin entities. Each digital twin e
|
44 | 45 |
|
45 | 46 | The provider ID is the identifier for a Digital Twin Provider. The provider ID must be universally unique and it is up to the provider to ensure this. The provider id may be associated with multiple instance IDs.
|
46 | 47 |
|
| 48 | +## <a name="provider-contract">Provider Contract</a> |
| 49 | + |
| 50 | +The provider operations that will initally be supported by the digital twin graph are: Get, Set and Invoke. |
| 51 | + |
| 52 | +Providers that want to participate in the digital twin graph, will need to do the following: |
| 53 | +<ul> |
| 54 | + <li>Provide the async_rpc's Request interface with an ask operation that will use a targeted payload that has the following: |
| 55 | + <ul> |
| 56 | + <li>Get: |
| 57 | + <ul> |
| 58 | + <li>instance_id: set to the the target's instance ID</li?> |
| 59 | + <li>member_path: is optional; if it is empty, then it means the entire entity; if it is not empty, then it targets a specific member</li?> |
| 60 | + <li>operation: set to "Get"</li> |
| 61 | + <li>payload: is not required</li> |
| 62 | + </ul> |
| 63 | + </li> |
| 64 | + <li>Set: |
| 65 | + <ul> |
| 66 | + <li>instance_id: set to the the target's instance ID</li> |
| 67 | + <li>member_path: is optional; if it is empty, then it means the entire entity; if it is not empty, then it targets a specific member</li> |
| 68 | + <li>operation: set to "Set"</li> |
| 69 | + <li>payload: the value</li> |
| 70 | + </ul> |
| 71 | + <li>Invoke: |
| 72 | + <ul> |
| 73 | + <li>instance_id: set to the the target's instance ID</li> |
| 74 | + <li>member_path: the name of command to invoke</li> |
| 75 | + <li>operation: set to "Invoke"</li> |
| 76 | + <li>payload: the command's request payload</li> |
| 77 | + </ul> |
| 78 | + </li> |
| 79 | + </ul> |
| 80 | + <li>Return the result from a provider operation to the aync_rpc's Response interface using with the answer operation that has a payload that has the following: |
| 81 | + <ul> |
| 82 | + <li>Get: The value of the target. |
| 83 | + </li> |
| 84 | + <li>Set: The payload is not required. |
| 85 | + </li> |
| 86 | + <li>Invoke: The command's response payload. |
| 87 | + </li> |
| 88 | + </li> |
| 89 | + </ul> |
| 90 | +</ul> |
| 91 | + |
47 | 92 | ## <a name="operations">Operations</a>
|
48 | 93 |
|
49 | 94 | The Digital Twin Graph Service will support four operations:
|
|
0 commit comments