@itentialopensource/adapter-microsoft_graph 1.0.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. package/.eslintignore +0 -1
  2. package/.jshintrc +3 -0
  3. package/AUTH.md +20 -16
  4. package/CALLS.md +63 -28
  5. package/CHANGELOG.md +8 -0
  6. package/CONTRIBUTING.md +1 -160
  7. package/ENHANCE.md +2 -2
  8. package/README.md +31 -22
  9. package/SUMMARY.md +2 -2
  10. package/SYSTEMINFO.md +15 -5
  11. package/adapter.js +159 -330
  12. package/adapterBase.js +538 -873
  13. package/changelogs/changelog.md +6 -0
  14. package/metadata.json +52 -0
  15. package/package.json +22 -25
  16. package/pronghorn.json +475 -143
  17. package/propertiesSchema.json +444 -40
  18. package/refs?service=git-upload-pack +0 -0
  19. package/report/adapter-openapi.json +14709 -0
  20. package/report/adapter-openapi.yaml +9744 -0
  21. package/report/adapterInfo.json +8 -8
  22. package/report/updateReport1691507370664.json +120 -0
  23. package/report/updateReport1692202407231.json +120 -0
  24. package/report/updateReport1694460353234.json +120 -0
  25. package/report/updateReport1695667793473.json +120 -0
  26. package/sampleProperties.json +63 -2
  27. package/test/integration/adapterTestBasicGet.js +1 -1
  28. package/test/integration/adapterTestConnectivity.js +91 -42
  29. package/test/integration/adapterTestIntegration.js +130 -2
  30. package/test/unit/adapterBaseTestUnit.js +395 -292
  31. package/test/unit/adapterTestUnit.js +306 -109
  32. package/utils/adapterInfo.js +1 -1
  33. package/utils/addAuth.js +1 -1
  34. package/utils/artifactize.js +1 -1
  35. package/utils/checkMigrate.js +1 -1
  36. package/utils/entitiesToDB.js +1 -0
  37. package/utils/findPath.js +1 -1
  38. package/utils/methodDocumentor.js +57 -22
  39. package/utils/modify.js +13 -15
  40. package/utils/packModificationScript.js +1 -1
  41. package/utils/taskMover.js +309 -0
  42. package/utils/tbScript.js +3 -10
  43. package/utils/tbUtils.js +2 -3
  44. package/utils/testRunner.js +1 -1
  45. package/utils/troubleshootingAdapter.js +1 -3
  46. package/workflows/README.md +0 -3
@@ -18,6 +18,11 @@
18
18
  "minimum": 1,
19
19
  "maximum": 65535
20
20
  },
21
+ "choosepath": {
22
+ "type": "string",
23
+ "description": "choose the path to use -- requires entityPath choices",
24
+ "default": ""
25
+ },
21
26
  "base_path": {
22
27
  "type": "string",
23
28
  "description": "a base path that is consistent across api calls",
@@ -101,6 +106,9 @@
101
106
  },
102
107
  "devicebroker": {
103
108
  "$ref": "#/definitions/devicebroker"
109
+ },
110
+ "cache": {
111
+ "$ref": "#/definitions/cache"
104
112
  }
105
113
  },
106
114
  "required": [
@@ -122,7 +130,8 @@
122
130
  "static_token",
123
131
  "jwt_token",
124
132
  "request_token",
125
- "no_authentication"
133
+ "no_authentication",
134
+ "multi_step_authentication"
126
135
  ]
127
136
  },
128
137
  "username": {
@@ -255,6 +264,74 @@
255
264
  "type": "string",
256
265
  "description": "The grant type for OAuth requests - can also provide in schema",
257
266
  "default": ""
267
+ },
268
+ "sensitive": {
269
+ "type": "array",
270
+ "description": "List of sensitive keys to search and hide values from being logged",
271
+ "default": [],
272
+ "items": {
273
+ "type": "string"
274
+ }
275
+ },
276
+ "sso": {
277
+ "type": "object",
278
+ "properties": {
279
+ "protocol": {
280
+ "type": "string",
281
+ "description": "the protocol to request token from system",
282
+ "default": "",
283
+ "enum": [
284
+ "http",
285
+ "https",
286
+ ""
287
+ ]
288
+ },
289
+ "host": {
290
+ "type": "string",
291
+ "description": "hostname of the authentication system",
292
+ "default": "",
293
+ "examples": [
294
+ "systemx.customer.com"
295
+ ]
296
+ },
297
+ "port": {
298
+ "type": "integer",
299
+ "description": "port on which to connect to the authentication system",
300
+ "default": 0,
301
+ "minimum": 0,
302
+ "maximum": 65535
303
+ }
304
+ }
305
+ },
306
+ "multiStepAuthCalls": {
307
+ "type": "array",
308
+ "items": {
309
+ "type": "object",
310
+ "properties": {
311
+ "name": {
312
+ "type": "string",
313
+ "description": "Id of the step call",
314
+ "examples": [
315
+ "getAccessToken"
316
+ ]
317
+ },
318
+ "requestFields": {
319
+ "type": "object",
320
+ "description": "The fields set in step request"
321
+ },
322
+ "responseFields": {
323
+ "type": "object",
324
+ "description": "The fields from the step result"
325
+ },
326
+ "successfullResponseCode": {
327
+ "type": "integer",
328
+ "description": "Expected response code for given step, if not set any successfull http response is accepted",
329
+ "examples": [
330
+ 200
331
+ ]
332
+ }
333
+ }
334
+ }
258
335
  }
259
336
  },
260
337
  "required": [
@@ -357,7 +434,13 @@
357
434
  },
358
435
  "query_object": {
359
436
  "type": "object",
360
- "description": "Query object { device: xxxxx } to be placed into the healthcheck, will be converted to query string by the adapter"
437
+ "description": "Query object { device: xxxxx } to be placed into the healthcheck, will be converted to query string by the adapter",
438
+ "default": {}
439
+ },
440
+ "addlHeaders": {
441
+ "type": "object",
442
+ "description": "headers that will be appended to the headers for the call",
443
+ "default": {}
361
444
  }
362
445
  },
363
446
  "required": [
@@ -437,6 +520,7 @@
437
520
  "priorities": {
438
521
  "type": "array",
439
522
  "description": "define your priorities here",
523
+ "default": [],
440
524
  "items": {
441
525
  "type": "object",
442
526
  "properties": {
@@ -507,6 +591,7 @@
507
591
  "failover_codes": {
508
592
  "type": "array",
509
593
  "description": "An array of codes where it is ok to try another method",
594
+ "default": [],
510
595
  "items": {
511
596
  "type": "integer"
512
597
  }
@@ -524,19 +609,23 @@
524
609
  "properties": {
525
610
  "payload": {
526
611
  "type": "object",
527
- "description": "payload fields that will be appended to the provided payload (excluding GET calls)"
612
+ "description": "payload fields that will be appended to the provided payload (excluding GET calls)",
613
+ "default": {}
528
614
  },
529
615
  "uriOptions": {
530
616
  "type": "object",
531
- "description": "options that will be appended to all GET calls"
617
+ "description": "options that will be appended to all GET calls",
618
+ "default": {}
532
619
  },
533
620
  "addlHeaders": {
534
621
  "type": "object",
535
- "description": "headers that will be appended to the headers for the call"
622
+ "description": "headers that will be appended to the headers for the call",
623
+ "default": {}
536
624
  },
537
625
  "authData": {
538
626
  "type": "object",
539
- "description": "authentication data that will be appended to the payload for authentication calls"
627
+ "description": "authentication data that will be appended to the payload for authentication calls",
628
+ "default": {}
540
629
  }
541
630
  }
542
631
  },
@@ -851,6 +940,7 @@
851
940
  "type": "array",
852
941
  "description": "Broker call(s) to getDevice",
853
942
  "items": {
943
+ "type": "object",
854
944
  "properties": {
855
945
  "path": {
856
946
  "type": "string",
@@ -866,26 +956,38 @@
866
956
  "type": "object",
867
957
  "description": "The json object with query parameters of the call to getDevice",
868
958
  "additionalProperties": {
869
- "type": "string"
959
+ "type": [
960
+ "string",
961
+ "number"
962
+ ]
870
963
  }
871
964
  },
872
965
  "body": {
873
966
  "type": "object",
874
967
  "description": "The json object with body of the call to getDevice",
875
968
  "additionalProperties": {
876
- "type": "string"
969
+ "type": [
970
+ "string",
971
+ "number"
972
+ ]
877
973
  }
878
974
  },
879
975
  "headers": {
880
976
  "type": "object",
881
977
  "description": "The json object with headers of the call to getDevice",
882
978
  "additionalProperties": {
883
- "type": "string"
979
+ "type": [
980
+ "string",
981
+ "number"
982
+ ]
884
983
  }
885
984
  },
886
985
  "handleFailure": {
887
986
  "type": "string",
888
- "enum": ["ignore", "fail"],
987
+ "enum": [
988
+ "ignore",
989
+ "fail"
990
+ ],
889
991
  "description": "return failure or ignore failure",
890
992
  "default": "ignore"
891
993
  },
@@ -893,7 +995,10 @@
893
995
  "type": "object",
894
996
  "description": "The json object with response fields of the call to getDevice",
895
997
  "additionalProperties": {
896
- "type": "string"
998
+ "type": [
999
+ "string",
1000
+ "number"
1001
+ ]
897
1002
  },
898
1003
  "properties": {}
899
1004
  },
@@ -906,7 +1011,10 @@
906
1011
  "type": "object",
907
1012
  "description": "The json object with response fields of the call to getDevice",
908
1013
  "additionalProperties": {
909
- "type": "string"
1014
+ "type": [
1015
+ "string",
1016
+ "number"
1017
+ ]
910
1018
  },
911
1019
  "properties": {
912
1020
  "name": {
@@ -943,6 +1051,7 @@
943
1051
  "type": "array",
944
1052
  "description": "Broker call(s) to getDevicesFiltered",
945
1053
  "items": {
1054
+ "type": "object",
946
1055
  "properties": {
947
1056
  "path": {
948
1057
  "type": "string",
@@ -954,30 +1063,74 @@
954
1063
  "description": "The method of the call to getDevicesFiltered",
955
1064
  "default": "GET"
956
1065
  },
1066
+ "pagination": {
1067
+ "type": "object",
1068
+ "description": "todo",
1069
+ "properties": {
1070
+ "offsetVar": {
1071
+ "type": "string",
1072
+ "description": "Name of variable that defines how to go to next set of results"
1073
+ },
1074
+ "limitVar": {
1075
+ "type": "string",
1076
+ "description": "Name of variable that defines the max results returned in a request"
1077
+ },
1078
+ "incrementBy": {
1079
+ "type": "string",
1080
+ "enum": [
1081
+ "limit",
1082
+ "page"
1083
+ ],
1084
+ "description": "How to incremenet offset. Default limit",
1085
+ "default": "limit"
1086
+ },
1087
+ "requestLocation": {
1088
+ "type": "string",
1089
+ "enum": [
1090
+ "query",
1091
+ "body"
1092
+ ],
1093
+ "description": "Where in request the pagination data goes",
1094
+ "default": "query"
1095
+ }
1096
+ }
1097
+ },
957
1098
  "query": {
958
1099
  "type": "object",
959
1100
  "description": "The json object with query parameters of the call to getDevicesFiltered",
960
1101
  "additionalProperties": {
961
- "type": "string"
1102
+ "type": [
1103
+ "string",
1104
+ "number"
1105
+ ]
962
1106
  }
963
1107
  },
964
1108
  "body": {
965
1109
  "type": "object",
966
1110
  "description": "The json object with body of the call to getDevicesFiltered",
967
1111
  "additionalProperties": {
968
- "type": "string"
1112
+ "type": [
1113
+ "string",
1114
+ "number"
1115
+ ]
969
1116
  }
970
1117
  },
971
1118
  "headers": {
972
1119
  "type": "object",
973
1120
  "description": "The json object with headers of the call to getDevicesFiltered",
974
1121
  "additionalProperties": {
975
- "type": "string"
1122
+ "type": [
1123
+ "string",
1124
+ "number"
1125
+ ]
976
1126
  }
977
1127
  },
978
1128
  "handleFailure": {
979
1129
  "type": "string",
980
- "enum": ["ignore", "fail"],
1130
+ "enum": [
1131
+ "ignore",
1132
+ "fail"
1133
+ ],
981
1134
  "description": "return failure or ignore failure",
982
1135
  "default": "ignore"
983
1136
  },
@@ -985,7 +1138,10 @@
985
1138
  "type": "object",
986
1139
  "description": "The json object with response fields of the call to getDevice",
987
1140
  "additionalProperties": {
988
- "type": "string"
1141
+ "type": [
1142
+ "string",
1143
+ "number"
1144
+ ]
989
1145
  },
990
1146
  "properties": {}
991
1147
  },
@@ -998,7 +1154,10 @@
998
1154
  "type": "object",
999
1155
  "description": "The json object with response fields of the call to getDevicesFiltered",
1000
1156
  "additionalProperties": {
1001
- "type": "string"
1157
+ "type": [
1158
+ "string",
1159
+ "number"
1160
+ ]
1002
1161
  },
1003
1162
  "properties": {
1004
1163
  "name": {
@@ -1035,6 +1194,7 @@
1035
1194
  "type": "array",
1036
1195
  "description": "Broker call(s) to determine if the device isAlive",
1037
1196
  "items": {
1197
+ "type": "object",
1038
1198
  "properties": {
1039
1199
  "path": {
1040
1200
  "type": "string",
@@ -1050,26 +1210,38 @@
1050
1210
  "type": "object",
1051
1211
  "description": "The json object with query parameters of the call to isAlive",
1052
1212
  "additionalProperties": {
1053
- "type": "string"
1213
+ "type": [
1214
+ "string",
1215
+ "number"
1216
+ ]
1054
1217
  }
1055
1218
  },
1056
1219
  "body": {
1057
1220
  "type": "object",
1058
1221
  "description": "The json object with body of the call to isAlive",
1059
1222
  "additionalProperties": {
1060
- "type": "string"
1223
+ "type": [
1224
+ "string",
1225
+ "number"
1226
+ ]
1061
1227
  }
1062
1228
  },
1063
1229
  "headers": {
1064
1230
  "type": "object",
1065
1231
  "description": "The json object with headers of the call to isAlive",
1066
1232
  "additionalProperties": {
1067
- "type": "string"
1233
+ "type": [
1234
+ "string",
1235
+ "number"
1236
+ ]
1068
1237
  }
1069
1238
  },
1070
1239
  "handleFailure": {
1071
1240
  "type": "string",
1072
- "enum": ["ignore", "fail"],
1241
+ "enum": [
1242
+ "ignore",
1243
+ "fail"
1244
+ ],
1073
1245
  "description": "return failure or ignore isAlive",
1074
1246
  "default": "ignore"
1075
1247
  },
@@ -1077,7 +1249,10 @@
1077
1249
  "type": "object",
1078
1250
  "description": "The json object with response fields of the call to getDevice",
1079
1251
  "additionalProperties": {
1080
- "type": "string"
1252
+ "type": [
1253
+ "string",
1254
+ "number"
1255
+ ]
1081
1256
  },
1082
1257
  "properties": {}
1083
1258
  },
@@ -1090,7 +1265,10 @@
1090
1265
  "type": "object",
1091
1266
  "description": "The json object with response fields of the call to isAlive",
1092
1267
  "additionalProperties": {
1093
- "type": "string"
1268
+ "type": [
1269
+ "string",
1270
+ "number"
1271
+ ]
1094
1272
  },
1095
1273
  "properties": {
1096
1274
  "status": {
@@ -1112,6 +1290,7 @@
1112
1290
  "type": "array",
1113
1291
  "description": "Broker call(s) to getConfig",
1114
1292
  "items": {
1293
+ "type": "object",
1115
1294
  "properties": {
1116
1295
  "path": {
1117
1296
  "type": "string",
@@ -1127,26 +1306,38 @@
1127
1306
  "type": "object",
1128
1307
  "description": "The json object with query parameters of the call to getConfig",
1129
1308
  "additionalProperties": {
1130
- "type": "string"
1309
+ "type": [
1310
+ "string",
1311
+ "number"
1312
+ ]
1131
1313
  }
1132
1314
  },
1133
1315
  "body": {
1134
1316
  "type": "object",
1135
1317
  "description": "The json object with body of the call to getConfig",
1136
1318
  "additionalProperties": {
1137
- "type": "string"
1319
+ "type": [
1320
+ "string",
1321
+ "number"
1322
+ ]
1138
1323
  }
1139
1324
  },
1140
1325
  "headers": {
1141
1326
  "type": "object",
1142
1327
  "description": "The json object with headers of the call to getConfig",
1143
1328
  "additionalProperties": {
1144
- "type": "string"
1329
+ "type": [
1330
+ "string",
1331
+ "number"
1332
+ ]
1145
1333
  }
1146
1334
  },
1147
1335
  "handleFailure": {
1148
1336
  "type": "string",
1149
- "enum": ["ignore", "fail"],
1337
+ "enum": [
1338
+ "ignore",
1339
+ "fail"
1340
+ ],
1150
1341
  "description": "return failure or ignore getConfig",
1151
1342
  "default": "ignore"
1152
1343
  },
@@ -1154,7 +1345,10 @@
1154
1345
  "type": "object",
1155
1346
  "description": "The json object with response fields of the call to getDevice",
1156
1347
  "additionalProperties": {
1157
- "type": "string"
1348
+ "type": [
1349
+ "string",
1350
+ "number"
1351
+ ]
1158
1352
  },
1159
1353
  "properties": {}
1160
1354
  },
@@ -1167,10 +1361,12 @@
1167
1361
  "type": "object",
1168
1362
  "description": "The json object with response fields of the call to getConfig",
1169
1363
  "additionalProperties": {
1170
- "type": "string"
1364
+ "type": [
1365
+ "string",
1366
+ "number"
1367
+ ]
1171
1368
  },
1172
- "properties": {
1173
- }
1369
+ "properties": {}
1174
1370
  }
1175
1371
  }
1176
1372
  }
@@ -1179,6 +1375,7 @@
1179
1375
  "type": "array",
1180
1376
  "description": "Broker call(s) to getCount",
1181
1377
  "items": {
1378
+ "type": "object",
1182
1379
  "properties": {
1183
1380
  "path": {
1184
1381
  "type": "string",
@@ -1194,26 +1391,38 @@
1194
1391
  "type": "object",
1195
1392
  "description": "The json object with query parameters of the call to getCount",
1196
1393
  "additionalProperties": {
1197
- "type": "string"
1394
+ "type": [
1395
+ "string",
1396
+ "number"
1397
+ ]
1198
1398
  }
1199
1399
  },
1200
1400
  "body": {
1201
1401
  "type": "object",
1202
1402
  "description": "The json object with body of the call to getCount",
1203
1403
  "additionalProperties": {
1204
- "type": "string"
1404
+ "type": [
1405
+ "string",
1406
+ "number"
1407
+ ]
1205
1408
  }
1206
1409
  },
1207
1410
  "headers": {
1208
1411
  "type": "object",
1209
1412
  "description": "The json object with headers of the call to getCount",
1210
1413
  "additionalProperties": {
1211
- "type": "string"
1414
+ "type": [
1415
+ "string",
1416
+ "number"
1417
+ ]
1212
1418
  }
1213
1419
  },
1214
1420
  "handleFailure": {
1215
1421
  "type": "string",
1216
- "enum": ["ignore", "fail"],
1422
+ "enum": [
1423
+ "ignore",
1424
+ "fail"
1425
+ ],
1217
1426
  "description": "return failure or ignore getCount",
1218
1427
  "default": "ignore"
1219
1428
  },
@@ -1221,7 +1430,10 @@
1221
1430
  "type": "object",
1222
1431
  "description": "The json object with response fields of the call to getDevice",
1223
1432
  "additionalProperties": {
1224
- "type": "string"
1433
+ "type": [
1434
+ "string",
1435
+ "number"
1436
+ ]
1225
1437
  },
1226
1438
  "properties": {}
1227
1439
  },
@@ -1234,9 +1446,201 @@
1234
1446
  "type": "object",
1235
1447
  "description": "The json object with response fields of the call to getConfig",
1236
1448
  "additionalProperties": {
1237
- "type": "string"
1449
+ "type": [
1450
+ "string",
1451
+ "number"
1452
+ ]
1238
1453
  },
1239
- "properties": {
1454
+ "properties": {}
1455
+ }
1456
+ }
1457
+ }
1458
+ }
1459
+ }
1460
+ },
1461
+ "cache": {
1462
+ "type": "object",
1463
+ "properties": {
1464
+ "enabled": {
1465
+ "type": "boolean",
1466
+ "description": "Whether or not cache is enabled for adapter",
1467
+ "default": false
1468
+ },
1469
+ "entities": {
1470
+ "type": "array",
1471
+ "description": "Information for the cached entities",
1472
+ "items": {
1473
+ "type": "object",
1474
+ "properties": {
1475
+ "entityType": {
1476
+ "type": "string",
1477
+ "description": "The name of the entity - should match adapter entity configuration or a broker (e.g. Device)",
1478
+ "default": ""
1479
+ },
1480
+ "frequency": {
1481
+ "type": "integer",
1482
+ "description": "how long (in minutes) we wait to re-populate the cache",
1483
+ "default": 1440,
1484
+ "maximum": 10080
1485
+ },
1486
+ "flushOnFail": {
1487
+ "type": "boolean",
1488
+ "description": "Whether to clear the cache we have if the populate failed",
1489
+ "default": false
1490
+ },
1491
+ "limit": {
1492
+ "type": "integer",
1493
+ "description": "maximum number of items to keep in cache",
1494
+ "default": 1000
1495
+ },
1496
+ "retryAttempts": {
1497
+ "type": "integer",
1498
+ "description": "number of times to retry the populate call before failure",
1499
+ "default": 5
1500
+ },
1501
+ "sort": {
1502
+ "type": "boolean",
1503
+ "description": "whether to sort the data or not",
1504
+ "default": true
1505
+ },
1506
+ "populate": {
1507
+ "type": "array",
1508
+ "description": "Information for the call(s) used to populate the cache",
1509
+ "items": {
1510
+ "type": "object",
1511
+ "properties": {
1512
+ "path": {
1513
+ "type": "string",
1514
+ "description": "The fully qualified path of the call to getDevice (e.g. /rest/api/device/{deviceid})",
1515
+ "default": ""
1516
+ },
1517
+ "method": {
1518
+ "type": "string",
1519
+ "description": "The method of the call to getDevice",
1520
+ "default": "GET"
1521
+ },
1522
+ "pagination": {
1523
+ "type": "object",
1524
+ "description": "todo",
1525
+ "properties": {
1526
+ "offsetVar": {
1527
+ "type": "string",
1528
+ "description": "Name of variable that defines how to go to next set of results"
1529
+ },
1530
+ "limitVar": {
1531
+ "type": "string",
1532
+ "description": "Name of variable that defines the max results returned in a request"
1533
+ },
1534
+ "incrementBy": {
1535
+ "type": "string",
1536
+ "enum": [
1537
+ "limit",
1538
+ "page"
1539
+ ],
1540
+ "description": "How to incremenet offset. Default limit",
1541
+ "default": "limit"
1542
+ },
1543
+ "requestLocation": {
1544
+ "type": "string",
1545
+ "enum": [
1546
+ "query",
1547
+ "body"
1548
+ ],
1549
+ "description": "Where in request the pagination data goes",
1550
+ "default": "query"
1551
+ }
1552
+ }
1553
+ },
1554
+ "query": {
1555
+ "type": "object",
1556
+ "description": "The json object with query parameters of the call to getDevice",
1557
+ "additionalProperties": {
1558
+ "type": [
1559
+ "string",
1560
+ "number"
1561
+ ]
1562
+ }
1563
+ },
1564
+ "body": {
1565
+ "type": "object",
1566
+ "description": "The json object with body of the call to getDevice",
1567
+ "additionalProperties": {
1568
+ "type": [
1569
+ "string",
1570
+ "number"
1571
+ ]
1572
+ }
1573
+ },
1574
+ "headers": {
1575
+ "type": "object",
1576
+ "description": "The json object with headers of the call to getDevice",
1577
+ "additionalProperties": {
1578
+ "type": [
1579
+ "string",
1580
+ "number"
1581
+ ]
1582
+ }
1583
+ },
1584
+ "handleFailure": {
1585
+ "type": "string",
1586
+ "enum": [
1587
+ "ignore",
1588
+ "fail"
1589
+ ],
1590
+ "description": "return failure or ignore failure",
1591
+ "default": "ignore"
1592
+ },
1593
+ "requestFields": {
1594
+ "type": "object",
1595
+ "description": "The json object with response fields of the call to getDevice",
1596
+ "additionalProperties": {
1597
+ "type": [
1598
+ "string",
1599
+ "number"
1600
+ ]
1601
+ },
1602
+ "properties": {}
1603
+ },
1604
+ "responseDatakey": {
1605
+ "type": "string",
1606
+ "description": "place in the response where the data is - supports jsonquery",
1607
+ "default": ""
1608
+ },
1609
+ "responseFields": {
1610
+ "type": "object",
1611
+ "description": "The json object with response fields of the call to getDevice",
1612
+ "additionalProperties": {
1613
+ "type": [
1614
+ "string",
1615
+ "number"
1616
+ ]
1617
+ }
1618
+ }
1619
+ }
1620
+ }
1621
+ },
1622
+ "cachedTasks": {
1623
+ "type": "array",
1624
+ "description": "Information for the call(s) used to populate the cache",
1625
+ "items": {
1626
+ "type": "object",
1627
+ "properties": {
1628
+ "name": {
1629
+ "type": "string",
1630
+ "description": "the name of the task/action that should utilize cached information",
1631
+ "default": ""
1632
+ },
1633
+ "filterField": {
1634
+ "type": "string",
1635
+ "description": "the field that contains filter information for this call",
1636
+ "default": ""
1637
+ },
1638
+ "filterLoc": {
1639
+ "type": "string",
1640
+ "description": "the field that contains the location of the filter field",
1641
+ "default": ""
1642
+ }
1643
+ }
1240
1644
  }
1241
1645
  }
1242
1646
  }
@@ -1245,4 +1649,4 @@
1245
1649
  }
1246
1650
  }
1247
1651
  }
1248
- }
1652
+ }