losant_rest 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 56b077ca63d36f215dfc3736ae9d853433f92498
4
- data.tar.gz: dccaa092ac1a61b22267add095b094ef528ee357
3
+ metadata.gz: 7dc37858179ca1de41ef93fbb30937193cddd9d5
4
+ data.tar.gz: fb41cbf5d02a1fc1c17cc8a23b8a800484ef1a15
5
5
  SHA512:
6
- metadata.gz: 11be7edc1876b7c63e195e7b2d36fabf263733a1b6f5c0f1baea672e2a5cbd0a93fe84fbd55dc9526dbd8ff9229250cbb580b002136a2d4ab74bf8c2a99fc123
7
- data.tar.gz: 6e971f6040890a5961fde5f963099a75030c4e0091ef61313611eb2e2465c9f67cc237cb18e1216e09d0c210e13b767cda57b3fb53bb07a7e5ec856ca134c3da
6
+ metadata.gz: 212bff8aeccd7b19da7777a84a2c13106146b65e2fab93e3a9c464a35ae3921522dbfcb081a442c127494f559432851f37ad9ff1764d4722557109739d9d572c
7
+ data.tar.gz: cf964850c8fbfebab80bad7c507f2fa4ae606ec0e37cb9f9f894fa1946d91eb31d35e6ed7d78993e4b87c198767e37349708243c19577711af7dfd5fa12d6d8a
data/README.md CHANGED
@@ -224,6 +224,16 @@ Contains all the actions that can be performed against the collection of
224
224
  [Workflows](https://docs.losant.com/workflows/overview/) belonging
225
225
  to an Application - such as listing the workflows or creating a new workflow.
226
226
 
227
+ * [integration](docs/integration.md)
228
+ Contains all the actions that can be performed against a single
229
+ [Integration](https://docs.losant.com/applications/integrations/), which
230
+ include things like removing an integration or updating integration configuration.
231
+
232
+ * [integrations](docs/integrations.md)
233
+ Contains all the actions that can be performed against the collection of
234
+ [Integrations](https://docs.losant.com/applications/integrations/) belonging
235
+ to an Application - such as listing integrations or creating a new integration.
236
+
227
237
  * [me](docs/me.md)
228
238
  Contains the actions for operating against the currently authenticated
229
239
  [User](https://docs.losant.com/user-accounts/overview/) such as changing
@@ -69,6 +69,10 @@
69
69
  * [Workflow Trigger Filter](#workflow-trigger-filter)
70
70
  * [Workflows](#workflows)
71
71
  * [Github Login](#github-login)
72
+ * [Integrations](#integrations)
73
+ * [Integrations Patch](#integrations-patch)
74
+ * [Integrations Post](#integrations-post)
75
+ * [Integrations](#integrations)
72
76
  * [Last Value Data](#last-value-data)
73
77
  * [Last Value Query](#last-value-query)
74
78
  * [Me](#me)
@@ -351,6 +355,9 @@ Schema for a single Application
351
355
  "flowCount": {
352
356
  "type": "number"
353
357
  },
358
+ "integrationCount": {
359
+ "type": "number"
360
+ },
354
361
  "webhookCount": {
355
362
  "type": "number"
356
363
  }
@@ -435,6 +442,8 @@ Schema for the body of an Application API Token creation request
435
442
  "experienceGroups.*",
436
443
  "experienceUser.*",
437
444
  "experienceUsers.*",
445
+ "integration.*",
446
+ "integrations.*",
438
447
  "flow.*",
439
448
  "flows.*",
440
449
  "webhook.*",
@@ -506,8 +515,13 @@ Schema for the body of an Application API Token creation request
506
515
  "flow.patch",
507
516
  "flow.pressVirtualButton",
508
517
  "flow.setStorageEntry",
509
- "flows.create",
510
518
  "flows.get",
519
+ "flows.post",
520
+ "integration.delete",
521
+ "integration.get",
522
+ "integration.patch",
523
+ "integrations.get",
524
+ "integrations.post",
511
525
  "webhook.delete",
512
526
  "webhook.get",
513
527
  "webhook.patch",
@@ -1081,6 +1095,9 @@ Schema for a collection of Applications
1081
1095
  "flowCount": {
1082
1096
  "type": "number"
1083
1097
  },
1098
+ "integrationCount": {
1099
+ "type": "number"
1100
+ },
1084
1101
  "webhookCount": {
1085
1102
  "type": "number"
1086
1103
  }
@@ -1216,6 +1233,7 @@ Schema for a single Audit Log entry
1216
1233
  "ExperienceUser",
1217
1234
  "Flow",
1218
1235
  "SolutionUser",
1236
+ "Integration",
1219
1237
  "Webhook"
1220
1238
  ]
1221
1239
  },
@@ -1359,6 +1377,7 @@ Schema for the filter of an audit log query
1359
1377
  "ExperienceUser",
1360
1378
  "Flow",
1361
1379
  "SolutionUser",
1380
+ "Integration",
1362
1381
  "Webhook"
1363
1382
  ]
1364
1383
  },
@@ -1519,6 +1538,7 @@ Schema for a collection of Audit Logs
1519
1538
  "ExperienceUser",
1520
1539
  "Flow",
1521
1540
  "SolutionUser",
1541
+ "Integration",
1522
1542
  "Webhook"
1523
1543
  ]
1524
1544
  },
@@ -6282,17 +6302,18 @@ Schema for a single Workflow
6282
6302
  "type": "string",
6283
6303
  "enum": [
6284
6304
  "deviceId",
6305
+ "deviceIdConnect",
6306
+ "deviceIdDisconnect",
6285
6307
  "deviceTag",
6308
+ "deviceTagConnect",
6309
+ "deviceTagDisconnect",
6310
+ "endpoint",
6311
+ "event",
6286
6312
  "mqttTopic",
6287
- "webhook",
6313
+ "integration",
6288
6314
  "timer",
6289
- "event",
6290
6315
  "virtualButton",
6291
- "endpoint",
6292
- "deviceIdConnect",
6293
- "deviceIdDisconnect",
6294
- "deviceTagConnect",
6295
- "deviceTagDisconnect"
6316
+ "webhook"
6296
6317
  ]
6297
6318
  },
6298
6319
  "config": {
@@ -6530,17 +6551,18 @@ Schema for the body of a Workflow modification request
6530
6551
  "type": "string",
6531
6552
  "enum": [
6532
6553
  "deviceId",
6554
+ "deviceIdConnect",
6555
+ "deviceIdDisconnect",
6533
6556
  "deviceTag",
6557
+ "deviceTagConnect",
6558
+ "deviceTagDisconnect",
6559
+ "endpoint",
6560
+ "event",
6534
6561
  "mqttTopic",
6535
- "webhook",
6562
+ "integration",
6536
6563
  "timer",
6537
- "event",
6538
6564
  "virtualButton",
6539
- "endpoint",
6540
- "deviceIdConnect",
6541
- "deviceIdDisconnect",
6542
- "deviceTagConnect",
6543
- "deviceTagDisconnect"
6565
+ "webhook"
6544
6566
  ]
6545
6567
  },
6546
6568
  "config": {
@@ -6680,17 +6702,18 @@ Schema for the body of a Workflow creation request
6680
6702
  "type": "string",
6681
6703
  "enum": [
6682
6704
  "deviceId",
6705
+ "deviceIdConnect",
6706
+ "deviceIdDisconnect",
6683
6707
  "deviceTag",
6708
+ "deviceTagConnect",
6709
+ "deviceTagDisconnect",
6710
+ "endpoint",
6711
+ "event",
6684
6712
  "mqttTopic",
6685
- "webhook",
6713
+ "integration",
6686
6714
  "timer",
6687
- "event",
6688
6715
  "virtualButton",
6689
- "endpoint",
6690
- "deviceIdConnect",
6691
- "deviceIdDisconnect",
6692
- "deviceTagConnect",
6693
- "deviceTagDisconnect"
6716
+ "webhook"
6694
6717
  ]
6695
6718
  },
6696
6719
  "config": {
@@ -6964,17 +6987,18 @@ Schema for a collection of Workflows
6964
6987
  "type": "string",
6965
6988
  "enum": [
6966
6989
  "deviceId",
6990
+ "deviceIdConnect",
6991
+ "deviceIdDisconnect",
6967
6992
  "deviceTag",
6993
+ "deviceTagConnect",
6994
+ "deviceTagDisconnect",
6995
+ "endpoint",
6996
+ "event",
6968
6997
  "mqttTopic",
6969
- "webhook",
6998
+ "integration",
6970
6999
  "timer",
6971
- "event",
6972
7000
  "virtualButton",
6973
- "endpoint",
6974
- "deviceIdConnect",
6975
- "deviceIdDisconnect",
6976
- "deviceTagConnect",
6977
- "deviceTagDisconnect"
7001
+ "webhook"
6978
7002
  ]
6979
7003
  },
6980
7004
  "config": {
@@ -7178,62 +7202,214 @@ Schema for the body of a Github login request
7178
7202
 
7179
7203
  <br/>
7180
7204
 
7181
- ## Last Value Data
7205
+ ## Integrations
7182
7206
 
7183
- Schema for the result of a last value query
7207
+ Schema for a single Integrations
7184
7208
 
7185
- ### <a name="last-value-data-schema"></a> Schema
7209
+ ### <a name="integrations-schema"></a> Schema
7186
7210
 
7187
7211
  ```json
7188
7212
  {
7189
7213
  "$schema": "http://json-schema.org/draft-04/schema#",
7190
7214
  "type": "object",
7191
- "patternProperties": {
7192
- "^[A-Fa-f\\d]{24}$": {
7215
+ "properties": {
7216
+ "id": {
7217
+ "type": "string",
7218
+ "pattern": "^[A-Fa-f\\d]{24}$"
7219
+ },
7220
+ "integrationId": {
7221
+ "type": "string",
7222
+ "pattern": "^[A-Fa-f\\d]{24}$"
7223
+ },
7224
+ "applicationId": {
7225
+ "type": "string",
7226
+ "pattern": "^[A-Fa-f\\d]{24}$"
7227
+ },
7228
+ "creationDate": {
7229
+ "type": "string",
7230
+ "format": "date-time"
7231
+ },
7232
+ "lastUpdated": {
7233
+ "type": "string",
7234
+ "format": "date-time"
7235
+ },
7236
+ "name": {
7237
+ "type": "string",
7238
+ "minLength": 1,
7239
+ "maxLength": 1024
7240
+ },
7241
+ "integrationType": {
7242
+ "type": "string",
7243
+ "enum": [
7244
+ "mqtt",
7245
+ "googlePubSub"
7246
+ ]
7247
+ },
7248
+ "enabled": {
7249
+ "type": "boolean"
7250
+ },
7251
+ "topics": {
7252
+ "type": "array",
7253
+ "items": {
7254
+ "type": "string",
7255
+ "minLength": 1,
7256
+ "maxLength": 1024
7257
+ }
7258
+ },
7259
+ "googlePubSubConfig": {
7193
7260
  "type": "object",
7194
7261
  "properties": {
7195
- "time": {
7262
+ "projectId": {
7196
7263
  "type": "string",
7197
- "format": "date-time"
7264
+ "minLength": 1,
7265
+ "maxLength": 1024
7198
7266
  },
7199
- "data": {
7200
- "type": "object",
7201
- "patternProperties": {
7202
- "^[0-9a-zA-Z_-]{1,255}$": {
7203
- "type": [
7204
- "number",
7205
- "string",
7206
- "boolean"
7207
- ]
7208
- }
7209
- },
7210
- "additionalProperties": false
7267
+ "keyJson": {
7268
+ "type": "string",
7269
+ "maxLength": 32767,
7270
+ "minLength": 50
7211
7271
  }
7212
7272
  },
7213
7273
  "additionalProperties": false,
7214
7274
  "required": [
7215
- "data",
7216
- "time"
7275
+ "projectId",
7276
+ "keyJson"
7277
+ ]
7278
+ },
7279
+ "mqttConfig": {
7280
+ "type": "object",
7281
+ "properties": {
7282
+ "clientId": {
7283
+ "type": "string",
7284
+ "maxLength": 1024,
7285
+ "minLength": 1
7286
+ },
7287
+ "username": {
7288
+ "type": "string",
7289
+ "maxLength": 1024,
7290
+ "minLength": 1
7291
+ },
7292
+ "password": {
7293
+ "type": "string",
7294
+ "maxLength": 1024,
7295
+ "minLength": 1
7296
+ },
7297
+ "clean": {
7298
+ "type": "boolean"
7299
+ },
7300
+ "port": {
7301
+ "type": "number",
7302
+ "minimum": 1,
7303
+ "maximum": 65535
7304
+ },
7305
+ "protocol": {
7306
+ "type": "string",
7307
+ "enum": [
7308
+ "mqtt",
7309
+ "mqtts",
7310
+ "ws",
7311
+ "wss"
7312
+ ]
7313
+ },
7314
+ "host": {
7315
+ "type": "string",
7316
+ "maxLength": 1024,
7317
+ "minLength": 1
7318
+ },
7319
+ "privateKey": {
7320
+ "type": "string",
7321
+ "maxLength": 32767,
7322
+ "minLength": 50
7323
+ },
7324
+ "certificate": {
7325
+ "type": "string",
7326
+ "maxLength": 32767,
7327
+ "minLength": 50
7328
+ },
7329
+ "caCertificate": {
7330
+ "type": "string",
7331
+ "maxLength": 32767,
7332
+ "minLength": 50
7333
+ }
7334
+ },
7335
+ "additionalProperties": false,
7336
+ "required": [
7337
+ "port",
7338
+ "protocol",
7339
+ "host"
7217
7340
  ]
7341
+ },
7342
+ "status": {
7343
+ "lastKeepAlive": {
7344
+ "type": [
7345
+ "number"
7346
+ ]
7347
+ },
7348
+ "nextAttempt": {
7349
+ "type": [
7350
+ "number"
7351
+ ]
7352
+ },
7353
+ "connectInfo": {
7354
+ "type": "object",
7355
+ "properties": {
7356
+ "ts": {
7357
+ "type": [
7358
+ "number",
7359
+ "null"
7360
+ ]
7361
+ }
7362
+ }
7363
+ },
7364
+ "disconnectInfo": {
7365
+ "type": "object",
7366
+ "properties": {
7367
+ "ts": {
7368
+ "type": [
7369
+ "number",
7370
+ "null"
7371
+ ]
7372
+ },
7373
+ "error": {
7374
+ "type": "string"
7375
+ }
7376
+ }
7377
+ }
7218
7378
  }
7219
- },
7220
- "additionalProperties": false
7379
+ }
7221
7380
  }
7222
7381
  ```
7223
- ### <a name="last-value-data-example"></a> Example
7382
+ ### <a name="integrations-example"></a> Example
7224
7383
 
7225
7384
  ```json
7226
7385
  {
7227
- "575ecf887ae143cd83dc4aa2": {
7228
- "time": "2016-06-13T04:00:00.000Z",
7229
- "data": {
7230
- "voltage": 12
7231
- }
7386
+ "id": "58ec07f20c747f65243d0d76",
7387
+ "integrationId": "58ec07f20c747f65243d0d76",
7388
+ "applicationId": "575ec8687ae143cd83dc4a97",
7389
+ "creationDate": "2016-06-13T04:00:00.000Z",
7390
+ "lastUpdated": "2016-06-13T04:00:00.000Z",
7391
+ "name": "Example Integrations",
7392
+ "integrationType": "mqtt",
7393
+ "enabled": true,
7394
+ "topics": [
7395
+ "myTopic"
7396
+ ],
7397
+ "mqttConfig": {
7398
+ "clientId": "exampleClientId",
7399
+ "username": "exampleUsername",
7400
+ "password": "examplePassword",
7401
+ "port": 8883,
7402
+ "protocol": "mqtts",
7403
+ "host": "broker.example.com"
7232
7404
  },
7233
- "575ef5c97ae143cd83dc4aac": {
7234
- "time": "2016-06-12T08:30:00.000Z",
7235
- "data": {
7236
- "voltage": 19
7405
+ "status": {
7406
+ "lastKeepAlive": 1491863679994,
7407
+ "connectInfo": {
7408
+ "ts": 1490629589313
7409
+ },
7410
+ "disconnectInfo": {
7411
+ "ts": 1490629587190,
7412
+ "error": "Keepalive Timeout"
7237
7413
  }
7238
7414
  }
7239
7415
  }
@@ -7241,57 +7417,640 @@ Schema for the result of a last value query
7241
7417
 
7242
7418
  <br/>
7243
7419
 
7244
- ## Last Value Query
7420
+ ## Integrations Patch
7245
7421
 
7246
- Schema for the body of a last value query request
7422
+ Schema for the body of an Integrations modification request
7247
7423
 
7248
- ### <a name="last-value-query-schema"></a> Schema
7424
+ ### <a name="integrations-patch-schema"></a> Schema
7249
7425
 
7250
7426
  ```json
7251
7427
  {
7252
7428
  "$schema": "http://json-schema.org/draft-04/schema#",
7253
7429
  "type": "object",
7254
7430
  "properties": {
7255
- "attribute": {
7431
+ "name": {
7256
7432
  "type": "string",
7257
- "pattern": "^[0-9a-zA-Z_-]{1,255}$"
7433
+ "minLength": 1,
7434
+ "maxLength": 1024
7258
7435
  },
7259
- "deviceTags": {
7436
+ "integrationType": {
7437
+ "type": "string",
7438
+ "enum": [
7439
+ "mqtt",
7440
+ "googlePubSub"
7441
+ ]
7442
+ },
7443
+ "enabled": {
7444
+ "type": "boolean"
7445
+ },
7446
+ "topics": {
7260
7447
  "type": "array",
7261
7448
  "items": {
7262
- "type": "object",
7263
- "properties": {
7264
- "key": {
7265
- "type": "string",
7266
- "pattern": "^[0-9a-zA-Z_-]{1,255}$"
7267
- },
7268
- "value": {
7269
- "type": "string",
7270
- "minLength": 1,
7271
- "maxLength": 255
7272
- }
7449
+ "type": "string",
7450
+ "minLength": 1,
7451
+ "maxLength": 1024
7452
+ }
7453
+ },
7454
+ "googlePubSubConfig": {
7455
+ "type": "object",
7456
+ "properties": {
7457
+ "projectId": {
7458
+ "type": "string",
7459
+ "minLength": 1,
7460
+ "maxLength": 1024
7273
7461
  },
7274
- "additionalProperties": false
7462
+ "keyJson": {
7463
+ "type": "string",
7464
+ "maxLength": 32767,
7465
+ "minLength": 50
7466
+ }
7275
7467
  },
7276
- "maxItems": 100
7468
+ "additionalProperties": false,
7469
+ "required": [
7470
+ "projectId",
7471
+ "keyJson"
7472
+ ]
7277
7473
  },
7278
- "deviceIds": {
7279
- "type": "array",
7280
- "items": {
7281
- "type": "string",
7282
- "pattern": "^[A-Fa-f\\d]{24}$"
7474
+ "mqttConfig": {
7475
+ "type": "object",
7476
+ "properties": {
7477
+ "clientId": {
7478
+ "type": "string",
7479
+ "maxLength": 1024,
7480
+ "minLength": 1
7481
+ },
7482
+ "username": {
7483
+ "type": "string",
7484
+ "maxLength": 1024,
7485
+ "minLength": 1
7486
+ },
7487
+ "password": {
7488
+ "type": "string",
7489
+ "maxLength": 1024,
7490
+ "minLength": 1
7491
+ },
7492
+ "clean": {
7493
+ "type": "boolean"
7494
+ },
7495
+ "port": {
7496
+ "type": "number",
7497
+ "minimum": 1,
7498
+ "maximum": 65535
7499
+ },
7500
+ "protocol": {
7501
+ "type": "string",
7502
+ "enum": [
7503
+ "mqtt",
7504
+ "mqtts",
7505
+ "ws",
7506
+ "wss"
7507
+ ]
7508
+ },
7509
+ "host": {
7510
+ "type": "string",
7511
+ "maxLength": 1024,
7512
+ "minLength": 1
7513
+ },
7514
+ "privateKey": {
7515
+ "type": "string",
7516
+ "maxLength": 32767,
7517
+ "minLength": 50
7518
+ },
7519
+ "certificate": {
7520
+ "type": "string",
7521
+ "maxLength": 32767,
7522
+ "minLength": 50
7523
+ },
7524
+ "caCertificate": {
7525
+ "type": "string",
7526
+ "maxLength": 32767,
7527
+ "minLength": 50
7528
+ }
7283
7529
  },
7284
- "maxItems": 1000
7530
+ "additionalProperties": false,
7531
+ "required": [
7532
+ "port",
7533
+ "protocol",
7534
+ "host"
7535
+ ]
7285
7536
  }
7286
7537
  },
7287
7538
  "additionalProperties": false
7288
7539
  }
7289
7540
  ```
7290
- ### <a name="last-value-query-example"></a> Example
7541
+ ### <a name="integrations-patch-example"></a> Example
7291
7542
 
7292
7543
  ```json
7293
7544
  {
7294
- "deviceIds": [
7545
+ "topics": [
7546
+ "differentTopic"
7547
+ ]
7548
+ }
7549
+ ```
7550
+
7551
+ <br/>
7552
+
7553
+ ## Integrations Post
7554
+
7555
+ Schema for the body of an Integrations creation request
7556
+
7557
+ ### <a name="integrations-post-schema"></a> Schema
7558
+
7559
+ ```json
7560
+ {
7561
+ "$schema": "http://json-schema.org/draft-04/schema#",
7562
+ "type": "object",
7563
+ "properties": {
7564
+ "name": {
7565
+ "type": "string",
7566
+ "minLength": 1,
7567
+ "maxLength": 1024
7568
+ },
7569
+ "integrationType": {
7570
+ "type": "string",
7571
+ "enum": [
7572
+ "mqtt",
7573
+ "googlePubSub"
7574
+ ]
7575
+ },
7576
+ "enabled": {
7577
+ "type": "boolean"
7578
+ },
7579
+ "topics": {
7580
+ "type": "array",
7581
+ "items": {
7582
+ "type": "string",
7583
+ "minLength": 1,
7584
+ "maxLength": 1024
7585
+ }
7586
+ },
7587
+ "googlePubSubConfig": {
7588
+ "type": "object",
7589
+ "properties": {
7590
+ "projectId": {
7591
+ "type": "string",
7592
+ "minLength": 1,
7593
+ "maxLength": 1024
7594
+ },
7595
+ "keyJson": {
7596
+ "type": "string",
7597
+ "maxLength": 32767,
7598
+ "minLength": 50
7599
+ }
7600
+ },
7601
+ "additionalProperties": false,
7602
+ "required": [
7603
+ "projectId",
7604
+ "keyJson"
7605
+ ]
7606
+ },
7607
+ "mqttConfig": {
7608
+ "type": "object",
7609
+ "properties": {
7610
+ "clientId": {
7611
+ "type": "string",
7612
+ "maxLength": 1024,
7613
+ "minLength": 1
7614
+ },
7615
+ "username": {
7616
+ "type": "string",
7617
+ "maxLength": 1024,
7618
+ "minLength": 1
7619
+ },
7620
+ "password": {
7621
+ "type": "string",
7622
+ "maxLength": 1024,
7623
+ "minLength": 1
7624
+ },
7625
+ "clean": {
7626
+ "type": "boolean"
7627
+ },
7628
+ "port": {
7629
+ "type": "number",
7630
+ "minimum": 1,
7631
+ "maximum": 65535
7632
+ },
7633
+ "protocol": {
7634
+ "type": "string",
7635
+ "enum": [
7636
+ "mqtt",
7637
+ "mqtts",
7638
+ "ws",
7639
+ "wss"
7640
+ ]
7641
+ },
7642
+ "host": {
7643
+ "type": "string",
7644
+ "maxLength": 1024,
7645
+ "minLength": 1
7646
+ },
7647
+ "privateKey": {
7648
+ "type": "string",
7649
+ "maxLength": 32767,
7650
+ "minLength": 50
7651
+ },
7652
+ "certificate": {
7653
+ "type": "string",
7654
+ "maxLength": 32767,
7655
+ "minLength": 50
7656
+ },
7657
+ "caCertificate": {
7658
+ "type": "string",
7659
+ "maxLength": 32767,
7660
+ "minLength": 50
7661
+ }
7662
+ },
7663
+ "additionalProperties": false,
7664
+ "required": [
7665
+ "port",
7666
+ "protocol",
7667
+ "host"
7668
+ ]
7669
+ }
7670
+ },
7671
+ "additionalProperties": false,
7672
+ "required": [
7673
+ "name",
7674
+ "integrationType"
7675
+ ]
7676
+ }
7677
+ ```
7678
+ ### <a name="integrations-post-example"></a> Example
7679
+
7680
+ ```json
7681
+ {
7682
+ "name": "Example Integrations",
7683
+ "integrationType": "mqtt",
7684
+ "topics": [
7685
+ "myTopic"
7686
+ ],
7687
+ "mqttConfig": {
7688
+ "clientId": "exampleClientId",
7689
+ "username": "exampleUsername",
7690
+ "password": "examplePassword",
7691
+ "port": 8883,
7692
+ "protocol": "mqtts",
7693
+ "host": "broker.example.com"
7694
+ }
7695
+ }
7696
+ ```
7697
+
7698
+ <br/>
7699
+
7700
+ ## Integrations
7701
+
7702
+ Schema for a collection of Integrations
7703
+
7704
+ ### <a name="integrations-schema"></a> Schema
7705
+
7706
+ ```json
7707
+ {
7708
+ "$schema": "http://json-schema.org/draft-04/schema#",
7709
+ "type": "object",
7710
+ "properties": {
7711
+ "items": {
7712
+ "type": "array",
7713
+ "items": {
7714
+ "title": "Integrations",
7715
+ "description": "Schema for a single Integrations",
7716
+ "type": "object",
7717
+ "properties": {
7718
+ "id": {
7719
+ "type": "string",
7720
+ "pattern": "^[A-Fa-f\\d]{24}$"
7721
+ },
7722
+ "integrationId": {
7723
+ "type": "string",
7724
+ "pattern": "^[A-Fa-f\\d]{24}$"
7725
+ },
7726
+ "applicationId": {
7727
+ "type": "string",
7728
+ "pattern": "^[A-Fa-f\\d]{24}$"
7729
+ },
7730
+ "creationDate": {
7731
+ "type": "string",
7732
+ "format": "date-time"
7733
+ },
7734
+ "lastUpdated": {
7735
+ "type": "string",
7736
+ "format": "date-time"
7737
+ },
7738
+ "name": {
7739
+ "type": "string",
7740
+ "minLength": 1,
7741
+ "maxLength": 1024
7742
+ },
7743
+ "integrationType": {
7744
+ "type": "string",
7745
+ "enum": [
7746
+ "mqtt",
7747
+ "googlePubSub"
7748
+ ]
7749
+ },
7750
+ "enabled": {
7751
+ "type": "boolean"
7752
+ },
7753
+ "topics": {
7754
+ "type": "array",
7755
+ "items": {
7756
+ "type": "string",
7757
+ "minLength": 1,
7758
+ "maxLength": 1024
7759
+ }
7760
+ },
7761
+ "googlePubSubConfig": {
7762
+ "type": "object",
7763
+ "properties": {
7764
+ "projectId": {
7765
+ "type": "string",
7766
+ "minLength": 1,
7767
+ "maxLength": 1024
7768
+ },
7769
+ "keyJson": {
7770
+ "type": "string",
7771
+ "maxLength": 32767,
7772
+ "minLength": 50
7773
+ }
7774
+ },
7775
+ "additionalProperties": false,
7776
+ "required": [
7777
+ "projectId",
7778
+ "keyJson"
7779
+ ]
7780
+ },
7781
+ "mqttConfig": {
7782
+ "type": "object",
7783
+ "properties": {
7784
+ "clientId": {
7785
+ "type": "string",
7786
+ "maxLength": 1024,
7787
+ "minLength": 1
7788
+ },
7789
+ "username": {
7790
+ "type": "string",
7791
+ "maxLength": 1024,
7792
+ "minLength": 1
7793
+ },
7794
+ "password": {
7795
+ "type": "string",
7796
+ "maxLength": 1024,
7797
+ "minLength": 1
7798
+ },
7799
+ "clean": {
7800
+ "type": "boolean"
7801
+ },
7802
+ "port": {
7803
+ "type": "number",
7804
+ "minimum": 1,
7805
+ "maximum": 65535
7806
+ },
7807
+ "protocol": {
7808
+ "type": "string",
7809
+ "enum": [
7810
+ "mqtt",
7811
+ "mqtts",
7812
+ "ws",
7813
+ "wss"
7814
+ ]
7815
+ },
7816
+ "host": {
7817
+ "type": "string",
7818
+ "maxLength": 1024,
7819
+ "minLength": 1
7820
+ },
7821
+ "privateKey": {
7822
+ "type": "string",
7823
+ "maxLength": 32767,
7824
+ "minLength": 50
7825
+ },
7826
+ "certificate": {
7827
+ "type": "string",
7828
+ "maxLength": 32767,
7829
+ "minLength": 50
7830
+ },
7831
+ "caCertificate": {
7832
+ "type": "string",
7833
+ "maxLength": 32767,
7834
+ "minLength": 50
7835
+ }
7836
+ },
7837
+ "additionalProperties": false,
7838
+ "required": [
7839
+ "port",
7840
+ "protocol",
7841
+ "host"
7842
+ ]
7843
+ },
7844
+ "status": {
7845
+ "lastKeepAlive": {
7846
+ "type": [
7847
+ "number"
7848
+ ]
7849
+ },
7850
+ "nextAttempt": {
7851
+ "type": [
7852
+ "number"
7853
+ ]
7854
+ },
7855
+ "connectInfo": {
7856
+ "type": "object",
7857
+ "properties": {
7858
+ "ts": {
7859
+ "type": [
7860
+ "number",
7861
+ "null"
7862
+ ]
7863
+ }
7864
+ }
7865
+ },
7866
+ "disconnectInfo": {
7867
+ "type": "object",
7868
+ "properties": {
7869
+ "ts": {
7870
+ "type": [
7871
+ "number",
7872
+ "null"
7873
+ ]
7874
+ },
7875
+ "error": {
7876
+ "type": "string"
7877
+ }
7878
+ }
7879
+ }
7880
+ }
7881
+ }
7882
+ }
7883
+ },
7884
+ "count": {
7885
+ "type": "integer"
7886
+ },
7887
+ "totalCount": {
7888
+ "type": "integer"
7889
+ },
7890
+ "perPage": {
7891
+ "type": "integer"
7892
+ },
7893
+ "page": {
7894
+ "type": "integer"
7895
+ },
7896
+ "filter": {
7897
+ "type": "string"
7898
+ },
7899
+ "filterField": {
7900
+ "type": "string"
7901
+ },
7902
+ "sortField": {
7903
+ "type": "string"
7904
+ },
7905
+ "sortDirection": {
7906
+ "type": "string",
7907
+ "enum": [
7908
+ "asc",
7909
+ "desc"
7910
+ ]
7911
+ },
7912
+ "applicationId": {
7913
+ "type": "string",
7914
+ "pattern": "^[A-Fa-f\\d]{24}$"
7915
+ }
7916
+ }
7917
+ }
7918
+ ```
7919
+ ### <a name="integrations-example"></a> Example
7920
+
7921
+ ```json
7922
+ {
7923
+ "items": [
7924
+ {
7925
+ "$ref": "#/examples/integrations"
7926
+ }
7927
+ ],
7928
+ "count": 1,
7929
+ "totalCount": 4,
7930
+ "perPage": 1,
7931
+ "page": 0,
7932
+ "sortField": "name",
7933
+ "sortDirection": "asc",
7934
+ "applicationId": "575ec8687ae143cd83dc4a97"
7935
+ }
7936
+ ```
7937
+
7938
+ <br/>
7939
+
7940
+ ## Last Value Data
7941
+
7942
+ Schema for the result of a last value query
7943
+
7944
+ ### <a name="last-value-data-schema"></a> Schema
7945
+
7946
+ ```json
7947
+ {
7948
+ "$schema": "http://json-schema.org/draft-04/schema#",
7949
+ "type": "object",
7950
+ "patternProperties": {
7951
+ "^[A-Fa-f\\d]{24}$": {
7952
+ "type": "object",
7953
+ "properties": {
7954
+ "time": {
7955
+ "type": "string",
7956
+ "format": "date-time"
7957
+ },
7958
+ "data": {
7959
+ "type": "object",
7960
+ "patternProperties": {
7961
+ "^[0-9a-zA-Z_-]{1,255}$": {
7962
+ "type": [
7963
+ "number",
7964
+ "string",
7965
+ "boolean"
7966
+ ]
7967
+ }
7968
+ },
7969
+ "additionalProperties": false
7970
+ }
7971
+ },
7972
+ "additionalProperties": false,
7973
+ "required": [
7974
+ "data",
7975
+ "time"
7976
+ ]
7977
+ }
7978
+ },
7979
+ "additionalProperties": false
7980
+ }
7981
+ ```
7982
+ ### <a name="last-value-data-example"></a> Example
7983
+
7984
+ ```json
7985
+ {
7986
+ "575ecf887ae143cd83dc4aa2": {
7987
+ "time": "2016-06-13T04:00:00.000Z",
7988
+ "data": {
7989
+ "voltage": 12
7990
+ }
7991
+ },
7992
+ "575ef5c97ae143cd83dc4aac": {
7993
+ "time": "2016-06-12T08:30:00.000Z",
7994
+ "data": {
7995
+ "voltage": 19
7996
+ }
7997
+ }
7998
+ }
7999
+ ```
8000
+
8001
+ <br/>
8002
+
8003
+ ## Last Value Query
8004
+
8005
+ Schema for the body of a last value query request
8006
+
8007
+ ### <a name="last-value-query-schema"></a> Schema
8008
+
8009
+ ```json
8010
+ {
8011
+ "$schema": "http://json-schema.org/draft-04/schema#",
8012
+ "type": "object",
8013
+ "properties": {
8014
+ "attribute": {
8015
+ "type": "string",
8016
+ "pattern": "^[0-9a-zA-Z_-]{1,255}$"
8017
+ },
8018
+ "deviceTags": {
8019
+ "type": "array",
8020
+ "items": {
8021
+ "type": "object",
8022
+ "properties": {
8023
+ "key": {
8024
+ "type": "string",
8025
+ "pattern": "^[0-9a-zA-Z_-]{1,255}$"
8026
+ },
8027
+ "value": {
8028
+ "type": "string",
8029
+ "minLength": 1,
8030
+ "maxLength": 255
8031
+ }
8032
+ },
8033
+ "additionalProperties": false
8034
+ },
8035
+ "maxItems": 100
8036
+ },
8037
+ "deviceIds": {
8038
+ "type": "array",
8039
+ "items": {
8040
+ "type": "string",
8041
+ "pattern": "^[A-Fa-f\\d]{24}$"
8042
+ },
8043
+ "maxItems": 1000
8044
+ }
8045
+ },
8046
+ "additionalProperties": false
8047
+ }
8048
+ ```
8049
+ ### <a name="last-value-query-example"></a> Example
8050
+
8051
+ ```json
8052
+ {
8053
+ "deviceIds": [
7295
8054
  "575ecf887ae143cd83dc4aa2",
7296
8055
  "575ef5c97ae143cd83dc4aac"
7297
8056
  ],
@@ -7363,6 +8122,10 @@ Schema for information about the currently authenticated user
7363
8122
  "type": "string",
7364
8123
  "maxLength": 1024
7365
8124
  },
8125
+ "tokenCutoff": {
8126
+ "type": "string",
8127
+ "format": "date-time"
8128
+ },
7366
8129
  "emailVerified": {
7367
8130
  "type": "boolean"
7368
8131
  },
@@ -7413,6 +8176,9 @@ Schema for information about the currently authenticated user
7413
8176
  "flow": {
7414
8177
  "type": "number"
7415
8178
  },
8179
+ "integration": {
8180
+ "type": "number"
8181
+ },
7416
8182
  "webhook": {
7417
8183
  "type": "number"
7418
8184
  },
@@ -7665,9 +8431,20 @@ Schema for information about the currently authenticated user
7665
8431
  "type": "number"
7666
8432
  }
7667
8433
  }
8434
+ },
8435
+ "integration": {
8436
+ "type": "object",
8437
+ "patternProperties": {
8438
+ ".*": {
8439
+ "type": "number"
8440
+ }
8441
+ }
7668
8442
  }
7669
8443
  }
7670
8444
  },
8445
+ "integrationCount": {
8446
+ "type": "number"
8447
+ },
7671
8448
  "webhookCount": {
7672
8449
  "type": "number"
7673
8450
  }
@@ -7762,6 +8539,10 @@ Schema for the body of request to modify the current user
7762
8539
  "type": "string",
7763
8540
  "minLength": 8,
7764
8541
  "maxLength": 2048
8542
+ },
8543
+ "tokenCutoff": {
8544
+ "type": "string",
8545
+ "format": "date-time"
7765
8546
  }
7766
8547
  },
7767
8548
  "additionalProperties": false
@@ -7991,6 +8772,9 @@ Schema for a single Organization
7991
8772
  "solution": {
7992
8773
  "type": "number"
7993
8774
  },
8775
+ "integration": {
8776
+ "type": "number"
8777
+ },
7994
8778
  "webhook": {
7995
8779
  "type": "number"
7996
8780
  },
@@ -8135,12 +8919,23 @@ Schema for a single Organization
8135
8919
  "type": "number"
8136
8920
  }
8137
8921
  }
8922
+ },
8923
+ "integration": {
8924
+ "type": "object",
8925
+ "patternProperties": {
8926
+ ".*": {
8927
+ "type": "number"
8928
+ }
8929
+ }
8138
8930
  }
8139
8931
  }
8140
8932
  },
8141
8933
  "solutionCount": {
8142
8934
  "type": "number"
8143
8935
  },
8936
+ "integrationCount": {
8937
+ "type": "number"
8938
+ },
8144
8939
  "webhookCount": {
8145
8940
  "type": "number"
8146
8941
  }
@@ -8722,6 +9517,9 @@ Schema for a collection of Organizations
8722
9517
  "solution": {
8723
9518
  "type": "number"
8724
9519
  },
9520
+ "integration": {
9521
+ "type": "number"
9522
+ },
8725
9523
  "webhook": {
8726
9524
  "type": "number"
8727
9525
  },
@@ -8866,12 +9664,23 @@ Schema for a collection of Organizations
8866
9664
  "type": "number"
8867
9665
  }
8868
9666
  }
9667
+ },
9668
+ "integration": {
9669
+ "type": "object",
9670
+ "patternProperties": {
9671
+ ".*": {
9672
+ "type": "number"
9673
+ }
9674
+ }
8869
9675
  }
8870
9676
  }
8871
9677
  },
8872
9678
  "solutionCount": {
8873
9679
  "type": "number"
8874
9680
  },
9681
+ "integrationCount": {
9682
+ "type": "number"
9683
+ },
8875
9684
  "webhookCount": {
8876
9685
  "type": "number"
8877
9686
  }
@@ -9093,6 +9902,14 @@ Schema for the result of a payload count request
9093
9902
  "type": "number"
9094
9903
  }
9095
9904
  }
9905
+ },
9906
+ "integration": {
9907
+ "type": "object",
9908
+ "patternProperties": {
9909
+ ".*": {
9910
+ "type": "number"
9911
+ }
9912
+ }
9096
9913
  }
9097
9914
  }
9098
9915
  }