losant_rest 1.12.0 → 1.14.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +1 -1
  4. data/docs/_schemas.md +17509 -8097
  5. data/docs/application.md +6 -6
  6. data/docs/applicationApiTokens.md +1 -1
  7. data/docs/applications.md +1 -1
  8. data/docs/dataTable.md +1 -1
  9. data/docs/dataTableRows.md +1 -1
  10. data/docs/dataTables.md +1 -1
  11. data/docs/device.md +43 -0
  12. data/docs/devices.md +41 -2
  13. data/docs/edgeDeployment.md +49 -0
  14. data/docs/events.md +3 -3
  15. data/docs/experience.md +1 -1
  16. data/docs/experienceDomains.md +1 -1
  17. data/docs/experienceGroup.md +2 -0
  18. data/docs/experienceSlugs.md +1 -1
  19. data/docs/experienceVersion.md +3 -3
  20. data/docs/experienceVersions.md +2 -2
  21. data/docs/experienceView.md +4 -4
  22. data/docs/experienceViews.md +2 -2
  23. data/docs/file.md +5 -5
  24. data/docs/files.md +2 -2
  25. data/docs/flow.md +41 -0
  26. data/docs/flowVersions.md +44 -0
  27. data/docs/instance.md +168 -0
  28. data/docs/instanceApiToken.md +133 -0
  29. data/docs/instanceApiTokens.md +91 -0
  30. data/docs/instanceMember.md +133 -0
  31. data/docs/instanceMembers.md +91 -0
  32. data/docs/instanceOrg.md +135 -0
  33. data/docs/instanceOrgInvite.md +139 -0
  34. data/docs/instanceOrgInvites.md +96 -0
  35. data/docs/instanceOrgMember.md +139 -0
  36. data/docs/instanceOrgMembers.md +96 -0
  37. data/docs/instanceOrgs.md +91 -0
  38. data/docs/instances.md +50 -0
  39. data/docs/me.md +1 -1
  40. data/docs/org.md +1 -1
  41. data/docs/userApiToken.md +125 -0
  42. data/docs/userApiTokens.md +87 -0
  43. data/lib/losant_rest/application.rb +7 -7
  44. data/lib/losant_rest/application_api_token.rb +1 -1
  45. data/lib/losant_rest/application_api_tokens.rb +2 -2
  46. data/lib/losant_rest/application_certificate.rb +1 -1
  47. data/lib/losant_rest/application_certificate_authorities.rb +1 -1
  48. data/lib/losant_rest/application_certificate_authority.rb +1 -1
  49. data/lib/losant_rest/application_certificates.rb +1 -1
  50. data/lib/losant_rest/application_dashboard.rb +1 -1
  51. data/lib/losant_rest/application_dashboards.rb +1 -1
  52. data/lib/losant_rest/application_key.rb +1 -1
  53. data/lib/losant_rest/application_keys.rb +1 -1
  54. data/lib/losant_rest/application_template.rb +1 -1
  55. data/lib/losant_rest/application_templates.rb +1 -1
  56. data/lib/losant_rest/applications.rb +2 -2
  57. data/lib/losant_rest/audit_log.rb +1 -1
  58. data/lib/losant_rest/audit_logs.rb +1 -1
  59. data/lib/losant_rest/auth.rb +1 -1
  60. data/lib/losant_rest/client.rb +63 -3
  61. data/lib/losant_rest/dashboard.rb +1 -1
  62. data/lib/losant_rest/dashboards.rb +1 -1
  63. data/lib/losant_rest/data.rb +1 -1
  64. data/lib/losant_rest/data_table.rb +2 -2
  65. data/lib/losant_rest/data_table_row.rb +1 -1
  66. data/lib/losant_rest/data_table_rows.rb +2 -2
  67. data/lib/losant_rest/data_tables.rb +2 -2
  68. data/lib/losant_rest/device.rb +51 -1
  69. data/lib/losant_rest/device_recipe.rb +1 -1
  70. data/lib/losant_rest/device_recipes.rb +1 -1
  71. data/lib/losant_rest/devices.rb +49 -3
  72. data/lib/losant_rest/edge_deployment.rb +81 -0
  73. data/lib/losant_rest/edge_deployments.rb +1 -1
  74. data/lib/losant_rest/error.rb +1 -1
  75. data/lib/losant_rest/event.rb +1 -1
  76. data/lib/losant_rest/events.rb +4 -4
  77. data/lib/losant_rest/experience.rb +2 -2
  78. data/lib/losant_rest/experience_domain.rb +1 -1
  79. data/lib/losant_rest/experience_domains.rb +2 -2
  80. data/lib/losant_rest/experience_endpoint.rb +1 -1
  81. data/lib/losant_rest/experience_endpoints.rb +1 -1
  82. data/lib/losant_rest/experience_group.rb +5 -1
  83. data/lib/losant_rest/experience_groups.rb +1 -1
  84. data/lib/losant_rest/experience_slug.rb +1 -1
  85. data/lib/losant_rest/experience_slugs.rb +2 -2
  86. data/lib/losant_rest/experience_user.rb +1 -1
  87. data/lib/losant_rest/experience_users.rb +1 -1
  88. data/lib/losant_rest/experience_version.rb +4 -4
  89. data/lib/losant_rest/experience_versions.rb +3 -3
  90. data/lib/losant_rest/experience_view.rb +5 -5
  91. data/lib/losant_rest/experience_views.rb +3 -3
  92. data/lib/losant_rest/file.rb +5 -5
  93. data/lib/losant_rest/files.rb +3 -3
  94. data/lib/losant_rest/flow.rb +47 -1
  95. data/lib/losant_rest/flow_version.rb +1 -1
  96. data/lib/losant_rest/flow_versions.rb +51 -1
  97. data/lib/losant_rest/flows.rb +1 -1
  98. data/lib/losant_rest/instance.rb +227 -0
  99. data/lib/losant_rest/instance_api_token.rb +176 -0
  100. data/lib/losant_rest/instance_api_tokens.rb +136 -0
  101. data/lib/losant_rest/instance_member.rb +176 -0
  102. data/lib/losant_rest/instance_members.rb +134 -0
  103. data/lib/losant_rest/instance_org.rb +180 -0
  104. data/lib/losant_rest/instance_org_invite.rb +182 -0
  105. data/lib/losant_rest/instance_org_invites.rb +138 -0
  106. data/lib/losant_rest/instance_org_member.rb +182 -0
  107. data/lib/losant_rest/instance_org_members.rb +138 -0
  108. data/lib/losant_rest/instance_orgs.rb +139 -0
  109. data/lib/losant_rest/instances.rb +88 -0
  110. data/lib/losant_rest/integration.rb +1 -1
  111. data/lib/losant_rest/integrations.rb +1 -1
  112. data/lib/losant_rest/me.rb +2 -2
  113. data/lib/losant_rest/notebook.rb +1 -1
  114. data/lib/losant_rest/notebooks.rb +1 -1
  115. data/lib/losant_rest/org.rb +2 -2
  116. data/lib/losant_rest/org_invites.rb +1 -1
  117. data/lib/losant_rest/orgs.rb +1 -1
  118. data/lib/losant_rest/user_api_token.rb +170 -0
  119. data/lib/losant_rest/user_api_tokens.rb +132 -0
  120. data/lib/losant_rest/utils.rb +1 -1
  121. data/lib/losant_rest/version.rb +2 -2
  122. data/lib/losant_rest/webhook.rb +1 -1
  123. data/lib/losant_rest/webhooks.rb +1 -1
  124. data/lib/losant_rest.rb +16 -1
  125. data/schemas/advancedDeviceQuery.json +309 -0
  126. data/schemas/apiToken.json +2 -1
  127. data/schemas/apiTokenPost.json +431 -0
  128. data/schemas/apiTokens.json +4 -2
  129. data/schemas/applicationApiTokenPost.json +1 -0
  130. data/schemas/applicationDashboardPost.json +39 -17
  131. data/schemas/auditLog.json +4 -0
  132. data/schemas/auditLogFilter.json +4 -0
  133. data/schemas/auditLogs.json +4 -0
  134. data/schemas/bulkDeleteResponse.json +12 -0
  135. data/schemas/dashboard.json +39 -17
  136. data/schemas/dashboardPatch.json +39 -17
  137. data/schemas/dashboardPost.json +39 -17
  138. data/schemas/dashboardSendReport.json +4 -0
  139. data/schemas/dashboards.json +39 -17
  140. data/schemas/dataTableRowsDelete.json +1 -1
  141. data/schemas/devicePayloadCounts.json +24 -0
  142. data/schemas/devicesDeletePost.json +309 -0
  143. data/schemas/devicesExportPayloadCountPost.json +1350 -0
  144. data/schemas/devicesExportPost.json +309 -0
  145. data/schemas/devicesPatch.json +309 -0
  146. data/schemas/devicesRemoveDataPost.json +309 -0
  147. data/schemas/edgeDeployment.json +16 -0
  148. data/schemas/edgeDeployments.json +16 -0
  149. data/schemas/eventsDeleted.json +1 -1
  150. data/schemas/experienceGroup.json +6 -0
  151. data/schemas/experienceGroups.json +6 -0
  152. data/schemas/experienceLinkedResources.json +381 -6
  153. data/schemas/filePost.json +8 -2
  154. data/schemas/flow.json +127 -2
  155. data/schemas/flowPatch.json +127 -2
  156. data/schemas/flowPost.json +127 -2
  157. data/schemas/flowStorageMetadata.json +13 -0
  158. data/schemas/flowVersion.json +254 -4
  159. data/schemas/flowVersionPost.json +127 -2
  160. data/schemas/flowVersions.json +254 -4
  161. data/schemas/flowVersionsDeletePost.json +941 -0
  162. data/schemas/flows.json +127 -2
  163. data/schemas/flowsImportPost.json +254 -4
  164. data/schemas/flowsImportResult.json +381 -6
  165. data/schemas/githubLogin.json +64 -11
  166. data/schemas/historicalSummaries.json +43 -0
  167. data/schemas/historicalSummary.json +490 -0
  168. data/schemas/instance.json +60 -0
  169. data/schemas/instanceMember.json +41 -0
  170. data/schemas/instanceMemberPatch.json +17 -0
  171. data/schemas/instanceMemberPost.json +37 -0
  172. data/schemas/instanceMembers.json +77 -0
  173. data/schemas/instanceOrg.json +14 -0
  174. data/schemas/instanceOrgMember.json +45 -0
  175. data/schemas/instanceOrgMemberPatch.json +69 -0
  176. data/schemas/instanceOrgMemberPost.json +161 -0
  177. data/schemas/instanceOrgMembers.json +42 -0
  178. data/schemas/instanceOrgPatch.json +19 -0
  179. data/schemas/instanceOrgPost.json +177 -0
  180. data/schemas/instanceOrgs.json +18 -0
  181. data/schemas/instancePatch.json +67 -0
  182. data/schemas/instanceReportOptionsPost.json +41 -0
  183. data/schemas/me.json +30 -14
  184. data/schemas/multiDeviceCommand.json +309 -0
  185. data/schemas/notebook.json +45 -0
  186. data/schemas/notebookPatch.json +30 -0
  187. data/schemas/notebookPost.json +30 -0
  188. data/schemas/notebooks.json +45 -0
  189. data/schemas/org.json +30 -14
  190. data/schemas/orgInvite.json +90 -0
  191. data/schemas/orgInviteCollection.json +130 -0
  192. data/schemas/orgInvites.json +82 -77
  193. data/schemas/orgPatch.json +0 -9
  194. data/schemas/orgRoleInfo.json +69 -0
  195. data/schemas/orgs.json +30 -14
  196. data/schemas/payloadStats.json +126 -0
  197. data/schemas/userCredentials.json +64 -11
  198. data/schemas/userPost.json +64 -11
  199. data/schemas/validateContextError.json +34 -0
  200. data/schemas/validateContextSuccess.json +34 -0
  201. data/schemas/virtualButtonPress.json +4 -0
  202. metadata +55 -3
@@ -0,0 +1,42 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-04/schema#",
3
+ "type": "object",
4
+ "properties": {
5
+ "items": {
6
+ "type": "array",
7
+ "items": {
8
+ "$ref": "#/definitions/instanceOrgMembers"
9
+ }
10
+ },
11
+ "instanceId": {
12
+ "type": "string",
13
+ "pattern": "^[A-Fa-f\\d]{24}$"
14
+ },
15
+ "orgId": {
16
+ "type": "string",
17
+ "pattern": "^[A-Fa-f\\d]{24}$"
18
+ },
19
+ "count": {
20
+ "type": "integer"
21
+ },
22
+ "filter": {
23
+ "type": "string"
24
+ },
25
+ "filterField": {
26
+ "type": "string"
27
+ },
28
+ "sortField": {
29
+ "type": "string"
30
+ },
31
+ "sortDirection": {
32
+ "type": "string",
33
+ "enum": [
34
+ "asc",
35
+ "desc",
36
+ "ASC",
37
+ "DESC",
38
+ ""
39
+ ]
40
+ }
41
+ }
42
+ }
@@ -95,8 +95,27 @@
95
95
  }
96
96
  }
97
97
  },
98
+ "whitelistedEmailDomains": {
99
+ "type": "array",
100
+ "items": {
101
+ "type": "string",
102
+ "maxLength": 45,
103
+ "minLength": 3
104
+ }
105
+ },
98
106
  "auditLogEnabled": {
99
107
  "type": "boolean"
108
+ },
109
+ "disabledAt": {
110
+ "oneOf": [
111
+ {
112
+ "type": "string",
113
+ "format": "date-time"
114
+ },
115
+ {
116
+ "type": "boolean"
117
+ }
118
+ ]
100
119
  }
101
120
  },
102
121
  "additionalProperties": false
@@ -95,6 +95,172 @@
95
95
  }
96
96
  }
97
97
  },
98
+ "members": {
99
+ "type": "array",
100
+ "max": "10",
101
+ "items": {
102
+ "title": "Instance Org Member Post",
103
+ "description": "Schema for an Instance Organization member creation request",
104
+ "oneOf": [
105
+ {
106
+ "type": "object",
107
+ "properties": {
108
+ "userId": {
109
+ "type": "string",
110
+ "pattern": "^[A-Fa-f\\d]{24}$"
111
+ },
112
+ "role": {
113
+ "type": "string",
114
+ "enum": [
115
+ "admin",
116
+ "edit",
117
+ "collaborate",
118
+ "view",
119
+ "none"
120
+ ]
121
+ },
122
+ "applicationRoles": {
123
+ "type": "array",
124
+ "items": {
125
+ "type": "object",
126
+ "properties": {
127
+ "resourceId": {
128
+ "type": "string",
129
+ "pattern": "^[A-Fa-f\\d]{24}$"
130
+ },
131
+ "role": {
132
+ "type": "string",
133
+ "enum": [
134
+ "collaborate",
135
+ "view",
136
+ "none"
137
+ ]
138
+ }
139
+ },
140
+ "required": [
141
+ "resourceId",
142
+ "role"
143
+ ],
144
+ "additionalProperties": false
145
+ },
146
+ "maxItems": 1000
147
+ },
148
+ "dashboardRoles": {
149
+ "type": "array",
150
+ "items": {
151
+ "type": "object",
152
+ "properties": {
153
+ "resourceId": {
154
+ "type": "string",
155
+ "pattern": "^[A-Fa-f\\d]{24}$"
156
+ },
157
+ "role": {
158
+ "type": "string",
159
+ "enum": [
160
+ "collaborate",
161
+ "view",
162
+ "none"
163
+ ]
164
+ }
165
+ },
166
+ "required": [
167
+ "resourceId",
168
+ "role"
169
+ ],
170
+ "additionalProperties": false
171
+ },
172
+ "maxItems": 1000
173
+ }
174
+ },
175
+ "additionalProperties": false,
176
+ "required": [
177
+ "userId",
178
+ "role"
179
+ ]
180
+ },
181
+ {
182
+ "type": "object",
183
+ "properties": {
184
+ "email": {
185
+ "type": "string",
186
+ "format": "email",
187
+ "maxLength": 1024
188
+ },
189
+ "role": {
190
+ "type": "string",
191
+ "enum": [
192
+ "admin",
193
+ "edit",
194
+ "collaborate",
195
+ "view",
196
+ "none"
197
+ ]
198
+ },
199
+ "applicationRoles": {
200
+ "type": "array",
201
+ "items": {
202
+ "type": "object",
203
+ "properties": {
204
+ "resourceId": {
205
+ "type": "string",
206
+ "pattern": "^[A-Fa-f\\d]{24}$"
207
+ },
208
+ "role": {
209
+ "type": "string",
210
+ "enum": [
211
+ "collaborate",
212
+ "view",
213
+ "none"
214
+ ]
215
+ }
216
+ },
217
+ "required": [
218
+ "resourceId",
219
+ "role"
220
+ ],
221
+ "additionalProperties": false
222
+ },
223
+ "maxItems": 1000
224
+ },
225
+ "dashboardRoles": {
226
+ "type": "array",
227
+ "items": {
228
+ "type": "object",
229
+ "properties": {
230
+ "resourceId": {
231
+ "type": "string",
232
+ "pattern": "^[A-Fa-f\\d]{24}$"
233
+ },
234
+ "role": {
235
+ "type": "string",
236
+ "enum": [
237
+ "collaborate",
238
+ "view",
239
+ "none"
240
+ ]
241
+ }
242
+ },
243
+ "required": [
244
+ "resourceId",
245
+ "role"
246
+ ],
247
+ "additionalProperties": false
248
+ },
249
+ "maxItems": 1000
250
+ },
251
+ "disallowTransfer": {
252
+ "type": "boolean"
253
+ }
254
+ },
255
+ "additionalProperties": false,
256
+ "required": [
257
+ "email",
258
+ "role"
259
+ ]
260
+ }
261
+ ]
262
+ }
263
+ },
98
264
  "whitelistedEmailDomains": {
99
265
  "type": "array",
100
266
  "items": {
@@ -105,6 +271,17 @@
105
271
  },
106
272
  "auditLogEnabled": {
107
273
  "type": "boolean"
274
+ },
275
+ "disabledAt": {
276
+ "oneOf": [
277
+ {
278
+ "type": "string",
279
+ "format": "date-time"
280
+ },
281
+ {
282
+ "type": "boolean"
283
+ }
284
+ ]
108
285
  }
109
286
  },
110
287
  "additionalProperties": false,
@@ -117,6 +117,20 @@
117
117
  },
118
118
  "auditLogEnabled": {
119
119
  "type": "boolean"
120
+ },
121
+ "disabledAt": {
122
+ "oneOf": [
123
+ {
124
+ "type": "boolean",
125
+ "enum": [
126
+ false
127
+ ]
128
+ },
129
+ {
130
+ "type": "string",
131
+ "format": "date-time"
132
+ }
133
+ ]
120
134
  }
121
135
  },
122
136
  "additionalProperties": false,
@@ -125,6 +139,10 @@
125
139
  ]
126
140
  }
127
141
  },
142
+ "instanceId": {
143
+ "type": "string",
144
+ "pattern": "^[A-Fa-f\\d]{24}$"
145
+ },
128
146
  "count": {
129
147
  "type": "integer"
130
148
  },
@@ -0,0 +1,67 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-04/schema#",
3
+ "type": "object",
4
+ "properties": {
5
+ "reportConfigs": {
6
+ "type": "array",
7
+ "items": {
8
+ "type": "object",
9
+ "max": 10,
10
+ "properties": {
11
+ "id": {
12
+ "type": "string",
13
+ "maxLength": 48
14
+ },
15
+ "cron": {
16
+ "type": "string",
17
+ "maxLength": 255
18
+ },
19
+ "timezone": {
20
+ "type": "string",
21
+ "maxLength": 255
22
+ },
23
+ "emails": {
24
+ "type": "array",
25
+ "max": 10,
26
+ "items": {
27
+ "type": "string",
28
+ "format": "email",
29
+ "maxLength": 1024
30
+ }
31
+ },
32
+ "callbackUrl": {
33
+ "type": "string",
34
+ "maxLength": 1024
35
+ },
36
+ "resourceGroupBy": {
37
+ "type": "string",
38
+ "enum": [
39
+ "application",
40
+ "organization"
41
+ ]
42
+ },
43
+ "dateGroupBy": {
44
+ "type": "string",
45
+ "enum": [
46
+ "day",
47
+ "month"
48
+ ]
49
+ },
50
+ "periods": {
51
+ "type": "integer",
52
+ "minimum": 1,
53
+ "maximum": 90
54
+ },
55
+ "includeSandbox": {
56
+ "type": "boolean"
57
+ }
58
+ },
59
+ "required": [
60
+ "cron"
61
+ ],
62
+ "additionalProperties": false
63
+ }
64
+ }
65
+ },
66
+ "additionalProperties": false
67
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-04/schema#",
3
+ "type": "object",
4
+ "properties": {
5
+ "email": {
6
+ "type": "string",
7
+ "format": "email",
8
+ "maxLength": 1024
9
+ },
10
+ "callbackUrl": {
11
+ "type": "string",
12
+ "maxLength": 1024
13
+ },
14
+ "resourceGroupBy": {
15
+ "type": "string",
16
+ "enum": [
17
+ "application",
18
+ "organization"
19
+ ]
20
+ },
21
+ "dateGroupBy": {
22
+ "type": "string",
23
+ "enum": [
24
+ "day",
25
+ "month"
26
+ ]
27
+ },
28
+ "includeSandbox": {
29
+ "type": "boolean"
30
+ },
31
+ "start": {
32
+ "type": "string",
33
+ "format": "date-time"
34
+ },
35
+ "end": {
36
+ "type": "string",
37
+ "format": "date-time"
38
+ }
39
+ },
40
+ "additionalProperties": false
41
+ }
data/schemas/me.json CHANGED
@@ -323,11 +323,11 @@
323
323
  "type": "number"
324
324
  },
325
325
  "payloadCount": {
326
- "title": "Payload Counts",
327
- "description": "Schema for the result of a payload count request",
326
+ "title": "Payload Stats",
327
+ "description": "Schema for the result of a payload stats request",
328
328
  "type": "object",
329
329
  "properties": {
330
- "mqttOut": {
330
+ "dataTable": {
331
331
  "type": "object",
332
332
  "patternProperties": {
333
333
  ".*": {
@@ -335,7 +335,7 @@
335
335
  }
336
336
  }
337
337
  },
338
- "mqttIn": {
338
+ "deviceCommand": {
339
339
  "type": "object",
340
340
  "patternProperties": {
341
341
  ".*": {
@@ -343,7 +343,15 @@
343
343
  }
344
344
  }
345
345
  },
346
- "dataTable": {
346
+ "deviceConnect": {
347
+ "type": "object",
348
+ "patternProperties": {
349
+ ".*": {
350
+ "type": "number"
351
+ }
352
+ }
353
+ },
354
+ "deviceDisconnect": {
347
355
  "type": "object",
348
356
  "patternProperties": {
349
357
  ".*": {
@@ -359,7 +367,7 @@
359
367
  }
360
368
  }
361
369
  },
362
- "deviceCommand": {
370
+ "endpoint": {
363
371
  "type": "object",
364
372
  "patternProperties": {
365
373
  ".*": {
@@ -367,7 +375,7 @@
367
375
  }
368
376
  }
369
377
  },
370
- "webhook": {
378
+ "event": {
371
379
  "type": "object",
372
380
  "patternProperties": {
373
381
  ".*": {
@@ -375,7 +383,7 @@
375
383
  }
376
384
  }
377
385
  },
378
- "timer": {
386
+ "flowError": {
379
387
  "type": "object",
380
388
  "patternProperties": {
381
389
  ".*": {
@@ -383,7 +391,7 @@
383
391
  }
384
392
  }
385
393
  },
386
- "event": {
394
+ "integration": {
387
395
  "type": "object",
388
396
  "patternProperties": {
389
397
  ".*": {
@@ -391,7 +399,7 @@
391
399
  }
392
400
  }
393
401
  },
394
- "virtualButton": {
402
+ "mqttIn": {
395
403
  "type": "object",
396
404
  "patternProperties": {
397
405
  ".*": {
@@ -399,7 +407,7 @@
399
407
  }
400
408
  }
401
409
  },
402
- "deviceConnect": {
410
+ "mqttOut": {
403
411
  "type": "object",
404
412
  "patternProperties": {
405
413
  ".*": {
@@ -407,7 +415,7 @@
407
415
  }
408
416
  }
409
417
  },
410
- "deviceDisconnect": {
418
+ "notebook": {
411
419
  "type": "object",
412
420
  "patternProperties": {
413
421
  ".*": {
@@ -415,7 +423,7 @@
415
423
  }
416
424
  }
417
425
  },
418
- "endpoint": {
426
+ "timer": {
419
427
  "type": "object",
420
428
  "patternProperties": {
421
429
  ".*": {
@@ -423,7 +431,15 @@
423
431
  }
424
432
  }
425
433
  },
426
- "integration": {
434
+ "virtualButton": {
435
+ "type": "object",
436
+ "patternProperties": {
437
+ ".*": {
438
+ "type": "number"
439
+ }
440
+ }
441
+ },
442
+ "webhook": {
427
443
  "type": "object",
428
444
  "patternProperties": {
429
445
  ".*": {