losant_rest 1.9.3 → 1.10.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. data/docs/_schemas.md +17405 -2766
  3. data/docs/application.md +85 -0
  4. data/docs/applicationApiTokens.md +1 -1
  5. data/docs/applicationTemplate.md +46 -0
  6. data/docs/applicationTemplates.md +76 -1
  7. data/docs/device.md +7 -3
  8. data/docs/devices.md +92 -4
  9. data/docs/experienceEndpoints.md +1 -0
  10. data/docs/file.md +4 -4
  11. data/docs/flow.md +94 -1
  12. data/docs/flowVersion.md +96 -1
  13. data/docs/me.md +0 -36
  14. data/lib/losant_rest.rb +1 -0
  15. data/lib/losant_rest/application.rb +48 -0
  16. data/lib/losant_rest/application_api_tokens.rb +1 -1
  17. data/lib/losant_rest/application_template.rb +79 -0
  18. data/lib/losant_rest/application_templates.rb +89 -1
  19. data/lib/losant_rest/client.rb +6 -2
  20. data/lib/losant_rest/device.rb +11 -3
  21. data/lib/losant_rest/devices.rb +103 -3
  22. data/lib/losant_rest/experience_endpoints.rb +2 -0
  23. data/lib/losant_rest/file.rb +3 -3
  24. data/lib/losant_rest/flow.rb +115 -1
  25. data/lib/losant_rest/flow_version.rb +115 -1
  26. data/lib/losant_rest/me.rb +0 -41
  27. data/lib/losant_rest/version.rb +1 -1
  28. data/schemas/advancedDeviceQuery.json +117 -0
  29. data/schemas/advancedEventQuery.json +205 -0
  30. data/schemas/advancedQuery.json +34 -3
  31. data/schemas/application.json +13 -0
  32. data/schemas/applicationApiTokenPost.json +9 -1
  33. data/schemas/applicationApplyTemplatePatch.json +19 -0
  34. data/schemas/applicationCreationByTemplateResult.json +13 -0
  35. data/schemas/applicationPatch.json +5 -0
  36. data/schemas/applicationPost.json +13 -0
  37. data/schemas/applicationTemplate.json +32 -0
  38. data/schemas/applicationTemplateCategories.json +43 -0
  39. data/schemas/applicationTemplateCategory.json +23 -0
  40. data/schemas/applicationTemplates.json +44 -0
  41. data/schemas/applications.json +13 -0
  42. data/schemas/changePassword.json +2 -2
  43. data/schemas/dashboard.json +1285 -145
  44. data/schemas/dashboardPatch.json +1285 -145
  45. data/schemas/dashboardPost.json +1285 -145
  46. data/schemas/dashboards.json +1285 -145
  47. data/schemas/dataExport.json +142 -0
  48. data/schemas/dataTableRowsExport.json +34 -3
  49. data/schemas/device.json +16 -3
  50. data/schemas/devicePatch.json +16 -3
  51. data/schemas/devicePost.json +16 -3
  52. data/schemas/deviceRecipe.json +16 -3
  53. data/schemas/deviceRecipePatch.json +16 -3
  54. data/schemas/deviceRecipePost.json +16 -3
  55. data/schemas/deviceRecipes.json +16 -3
  56. data/schemas/devices.json +16 -3
  57. data/schemas/devicesDataRemoved.json +12 -0
  58. data/schemas/devicesDeletePost.json +1034 -0
  59. data/schemas/devicesDeleted.json +12 -0
  60. data/schemas/devicesExportPost.json +1035 -0
  61. data/schemas/devicesPatch.json +1773 -7
  62. data/schemas/devicesRemoveDataPost.json +1056 -0
  63. data/schemas/devicesUpdated.json +18 -0
  64. data/schemas/eventPost.json +22 -0
  65. data/schemas/eventsExport.json +205 -0
  66. data/schemas/experienceDomain.json +1 -1
  67. data/schemas/experienceDomainPatch.json +1 -1
  68. data/schemas/experienceDomainPost.json +1 -1
  69. data/schemas/experienceDomains.json +1 -1
  70. data/schemas/experienceGroup.json +7 -0
  71. data/schemas/experienceGroupPatch.json +7 -0
  72. data/schemas/experienceGroupPost.json +7 -0
  73. data/schemas/experienceGroups.json +7 -0
  74. data/schemas/experienceLinkedResources.json +348 -3
  75. data/schemas/experienceVersion.json +1 -1
  76. data/schemas/experienceVersions.json +1 -1
  77. data/schemas/flow.json +116 -1
  78. data/schemas/flowErrors.json +87 -0
  79. data/schemas/flowPatch.json +116 -1
  80. data/schemas/flowPost.json +116 -1
  81. data/schemas/flowStats.json +54 -0
  82. data/schemas/flowVersion.json +232 -2
  83. data/schemas/flowVersionPost.json +116 -1
  84. data/schemas/flowVersions.json +232 -2
  85. data/schemas/flows.json +116 -1
  86. data/schemas/flowsImportPost.json +232 -2
  87. data/schemas/flowsImportResult.json +348 -3
  88. data/schemas/githubLogin.json +15 -4
  89. data/schemas/me.json +0 -3
  90. data/schemas/mePatch.json +2 -2
  91. data/schemas/multiDeviceCommand.json +1019 -0
  92. data/schemas/notebook.json +99 -2
  93. data/schemas/notebookPatch.json +99 -2
  94. data/schemas/notebookPost.json +99 -2
  95. data/schemas/notebooks.json +99 -2
  96. data/schemas/org.json +1 -1
  97. data/schemas/orgInviteInfo.json +3 -0
  98. data/schemas/orgInvitePost.json +3 -0
  99. data/schemas/orgInvites.json +3 -0
  100. data/schemas/orgPatch.json +1 -1
  101. data/schemas/orgPost.json +0 -9
  102. data/schemas/orgs.json +1 -1
  103. data/schemas/passwordResetFinish.json +2 -2
  104. data/schemas/samlResponse.json +1 -1
  105. data/schemas/templateKeywords.json +14 -0
  106. data/schemas/timeSeriesData.json +101 -12
  107. data/schemas/timeSeriesQuery.json +101 -12
  108. data/schemas/userCredentials.json +13 -3
  109. data/schemas/userPost.json +21 -7
  110. metadata +19 -5
@@ -79,6 +79,64 @@ module LosantRest
79
79
  body: body)
80
80
  end
81
81
 
82
+ # Get information about errors that occurred during runs of this workflow version
83
+ #
84
+ # Authentication:
85
+ # The client must be configured with a valid api
86
+ # access token to call this action. The token
87
+ # must include at least one of the following scopes:
88
+ # all.Application, all.Application.read, all.Organization, all.Organization.read, all.User, all.User.read, flowVersion.*, or flowVersion.errors.
89
+ #
90
+ # Parameters:
91
+ # * {string} applicationId - ID associated with the application
92
+ # * {string} flowId - ID associated with the flow
93
+ # * {string} flowVersionId - Version ID or version name associated with the flow version
94
+ # * {string} duration - Duration of time range in milliseconds
95
+ # * {string} end - End of time range in milliseconds since epoch
96
+ # * {string} limit - Maximum number of errors to return
97
+ # * {string} sortDirection - Direction to sort the results by. Accepted values are: asc, desc
98
+ # * {string} deviceId - For edge workflows, the Device ID to return workflow errors for. When not included, will be errors for all device IDs.
99
+ # * {string} losantdomain - Domain scope of request (rarely needed)
100
+ # * {boolean} _actions - Return resource actions in response
101
+ # * {boolean} _links - Return resource link in response
102
+ # * {boolean} _embedded - Return embedded resources in response
103
+ #
104
+ # Responses:
105
+ # * 200 - Workflow error information (https://api.losant.com/#/definitions/flowErrors)
106
+ #
107
+ # Errors:
108
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
109
+ # * 404 - Error if flow version was not found (https://api.losant.com/#/definitions/error)
110
+ def errors(params = {})
111
+ params = Utils.symbolize_hash_keys(params)
112
+ query_params = { _actions: false, _links: true, _embedded: true }
113
+ headers = {}
114
+ body = nil
115
+
116
+ raise ArgumentError.new("applicationId is required") unless params.has_key?(:applicationId)
117
+ raise ArgumentError.new("flowId is required") unless params.has_key?(:flowId)
118
+ raise ArgumentError.new("flowVersionId is required") unless params.has_key?(:flowVersionId)
119
+
120
+ query_params[:duration] = params[:duration] if params.has_key?(:duration)
121
+ query_params[:end] = params[:end] if params.has_key?(:end)
122
+ query_params[:limit] = params[:limit] if params.has_key?(:limit)
123
+ query_params[:sortDirection] = params[:sortDirection] if params.has_key?(:sortDirection)
124
+ query_params[:deviceId] = params[:deviceId] if params.has_key?(:deviceId)
125
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
126
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
127
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
128
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
129
+
130
+ path = "/applications/#{params[:applicationId]}/flows/#{params[:flowId]}/versions/#{params[:flowVersionId]}/errors"
131
+
132
+ @client.request(
133
+ method: :get,
134
+ path: path,
135
+ query: query_params,
136
+ headers: headers,
137
+ body: body)
138
+ end
139
+
82
140
  # Retrieves information on a flow version
83
141
  #
84
142
  # Authentication:
@@ -153,7 +211,7 @@ module LosantRest
153
211
  #
154
212
  # Errors:
155
213
  # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
156
- # * 404 - Error if device was not found (https://api.losant.com/#/definitions/error)
214
+ # * 404 - Error if flow version was not found (https://api.losant.com/#/definitions/error)
157
215
  def get_log_entries(params = {})
158
216
  params = Utils.symbolize_hash_keys(params)
159
217
  query_params = { _actions: false, _links: true, _embedded: true }
@@ -234,5 +292,61 @@ module LosantRest
234
292
  body: body)
235
293
  end
236
294
 
295
+ # Get statistics about workflow runs for this workflow version
296
+ #
297
+ # Authentication:
298
+ # The client must be configured with a valid api
299
+ # access token to call this action. The token
300
+ # must include at least one of the following scopes:
301
+ # all.Application, all.Application.read, all.Organization, all.Organization.read, all.User, all.User.read, flowVersion.*, or flowVersion.stats.
302
+ #
303
+ # Parameters:
304
+ # * {string} applicationId - ID associated with the application
305
+ # * {string} flowId - ID associated with the flow
306
+ # * {string} flowVersionId - Version ID or version name associated with the flow version
307
+ # * {string} duration - Duration of time range in milliseconds
308
+ # * {string} end - End of time range in milliseconds since epoch
309
+ # * {string} resolution - Resolution in milliseconds
310
+ # * {string} deviceId - For edge workflows, the device ID to return workflow stats for. When not included, will be aggregate for all device IDs.
311
+ # * {string} losantdomain - Domain scope of request (rarely needed)
312
+ # * {boolean} _actions - Return resource actions in response
313
+ # * {boolean} _links - Return resource link in response
314
+ # * {boolean} _embedded - Return embedded resources in response
315
+ #
316
+ # Responses:
317
+ # * 200 - Statistics for workflow runs (https://api.losant.com/#/definitions/flowStats)
318
+ #
319
+ # Errors:
320
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
321
+ # * 404 - Error if flow version was not found (https://api.losant.com/#/definitions/error)
322
+ def stats(params = {})
323
+ params = Utils.symbolize_hash_keys(params)
324
+ query_params = { _actions: false, _links: true, _embedded: true }
325
+ headers = {}
326
+ body = nil
327
+
328
+ raise ArgumentError.new("applicationId is required") unless params.has_key?(:applicationId)
329
+ raise ArgumentError.new("flowId is required") unless params.has_key?(:flowId)
330
+ raise ArgumentError.new("flowVersionId is required") unless params.has_key?(:flowVersionId)
331
+
332
+ query_params[:duration] = params[:duration] if params.has_key?(:duration)
333
+ query_params[:end] = params[:end] if params.has_key?(:end)
334
+ query_params[:resolution] = params[:resolution] if params.has_key?(:resolution)
335
+ query_params[:deviceId] = params[:deviceId] if params.has_key?(:deviceId)
336
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
337
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
338
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
339
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
340
+
341
+ path = "/applications/#{params[:applicationId]}/flows/#{params[:flowId]}/versions/#{params[:flowVersionId]}/stats"
342
+
343
+ @client.request(
344
+ method: :get,
345
+ path: path,
346
+ query: query_params,
347
+ headers: headers,
348
+ body: body)
349
+ end
350
+
237
351
  end
238
352
  end
@@ -248,47 +248,6 @@ module LosantRest
248
248
  body: body)
249
249
  end
250
250
 
251
- # Disconnects the user from Twitter
252
- #
253
- # Authentication:
254
- # The client must be configured with a valid api
255
- # access token to call this action. The token
256
- # must include at least one of the following scopes:
257
- # all.User, me.*, or me.disconnectTwitter.
258
- #
259
- # Parameters:
260
- # * {string} losantdomain - Domain scope of request (rarely needed)
261
- # * {boolean} _actions - Return resource actions in response
262
- # * {boolean} _links - Return resource link in response
263
- # * {boolean} _embedded - Return embedded resources in response
264
- #
265
- # Responses:
266
- # * 200 - Updated user information (https://api.losant.com/#/definitions/me)
267
- #
268
- # Errors:
269
- # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
270
- def disconnect_twitter(params = {})
271
- params = Utils.symbolize_hash_keys(params)
272
- query_params = { _actions: false, _links: true, _embedded: true }
273
- headers = {}
274
- body = nil
275
-
276
-
277
- headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
278
- query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
279
- query_params[:_links] = params[:_links] if params.has_key?(:_links)
280
- query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
281
-
282
- path = "/me/disconnectTwitter"
283
-
284
- @client.request(
285
- method: :patch,
286
- path: path,
287
- query: query_params,
288
- headers: headers,
289
- body: body)
290
- end
291
-
292
251
  # Enables two factor auth for the current user
293
252
  #
294
253
  # Authentication:
@@ -21,5 +21,5 @@
21
21
  # SOFTWARE.
22
22
 
23
23
  module LosantRest
24
- VERSION = "1.9.3"
24
+ VERSION = "1.10.4"
25
25
  end
@@ -16,6 +16,13 @@
16
16
  },
17
17
  "maxItems": 100
18
18
  },
19
+ "$nor": {
20
+ "type": "array",
21
+ "items": {
22
+ "$ref": "#/definitions/advancedDeviceQuery"
23
+ },
24
+ "maxItems": 100
25
+ },
19
26
  "id": {
20
27
  "oneOf": [
21
28
  {
@@ -152,6 +159,28 @@
152
159
  },
153
160
  "$ci": {
154
161
  "type": "boolean"
162
+ },
163
+ "$in": {
164
+ "type": "array",
165
+ "maxItems": 100,
166
+ "items": {
167
+ "type": [
168
+ "string",
169
+ "number",
170
+ "boolean"
171
+ ]
172
+ }
173
+ },
174
+ "$nin": {
175
+ "type": "array",
176
+ "maxItems": 100,
177
+ "items": {
178
+ "type": [
179
+ "string",
180
+ "number",
181
+ "boolean"
182
+ ]
183
+ }
155
184
  }
156
185
  },
157
186
  "additionalProperties": false
@@ -233,6 +262,28 @@
233
262
  },
234
263
  "$ci": {
235
264
  "type": "boolean"
265
+ },
266
+ "$in": {
267
+ "type": "array",
268
+ "maxItems": 100,
269
+ "items": {
270
+ "type": [
271
+ "string",
272
+ "number",
273
+ "boolean"
274
+ ]
275
+ }
276
+ },
277
+ "$nin": {
278
+ "type": "array",
279
+ "maxItems": 100,
280
+ "items": {
281
+ "type": [
282
+ "string",
283
+ "number",
284
+ "boolean"
285
+ ]
286
+ }
236
287
  }
237
288
  },
238
289
  "additionalProperties": false
@@ -314,6 +365,28 @@
314
365
  },
315
366
  "$ci": {
316
367
  "type": "boolean"
368
+ },
369
+ "$in": {
370
+ "type": "array",
371
+ "maxItems": 100,
372
+ "items": {
373
+ "type": [
374
+ "string",
375
+ "number",
376
+ "boolean"
377
+ ]
378
+ }
379
+ },
380
+ "$nin": {
381
+ "type": "array",
382
+ "maxItems": 100,
383
+ "items": {
384
+ "type": [
385
+ "string",
386
+ "number",
387
+ "boolean"
388
+ ]
389
+ }
317
390
  }
318
391
  },
319
392
  "additionalProperties": false
@@ -395,6 +468,28 @@
395
468
  },
396
469
  "$ci": {
397
470
  "type": "boolean"
471
+ },
472
+ "$in": {
473
+ "type": "array",
474
+ "maxItems": 100,
475
+ "items": {
476
+ "type": [
477
+ "string",
478
+ "number",
479
+ "boolean"
480
+ ]
481
+ }
482
+ },
483
+ "$nin": {
484
+ "type": "array",
485
+ "maxItems": 100,
486
+ "items": {
487
+ "type": [
488
+ "string",
489
+ "number",
490
+ "boolean"
491
+ ]
492
+ }
398
493
  }
399
494
  },
400
495
  "additionalProperties": false
@@ -659,6 +754,28 @@
659
754
  },
660
755
  "$ci": {
661
756
  "type": "boolean"
757
+ },
758
+ "$in": {
759
+ "type": "array",
760
+ "maxItems": 100,
761
+ "items": {
762
+ "type": [
763
+ "string",
764
+ "number",
765
+ "boolean"
766
+ ]
767
+ }
768
+ },
769
+ "$nin": {
770
+ "type": "array",
771
+ "maxItems": 100,
772
+ "items": {
773
+ "type": [
774
+ "string",
775
+ "number",
776
+ "boolean"
777
+ ]
778
+ }
662
779
  }
663
780
  },
664
781
  "additionalProperties": false
@@ -16,6 +16,13 @@
16
16
  },
17
17
  "maxItems": 100
18
18
  },
19
+ "$nor": {
20
+ "type": "array",
21
+ "items": {
22
+ "$ref": "#/definitions/advancedEventQuery"
23
+ },
24
+ "maxItems": 100
25
+ },
19
26
  "id": {
20
27
  "oneOf": [
21
28
  {
@@ -91,6 +98,28 @@
91
98
  },
92
99
  "$ci": {
93
100
  "type": "boolean"
101
+ },
102
+ "$in": {
103
+ "type": "array",
104
+ "maxItems": 100,
105
+ "items": {
106
+ "type": [
107
+ "string",
108
+ "number",
109
+ "boolean"
110
+ ]
111
+ }
112
+ },
113
+ "$nin": {
114
+ "type": "array",
115
+ "maxItems": 100,
116
+ "items": {
117
+ "type": [
118
+ "string",
119
+ "number",
120
+ "boolean"
121
+ ]
122
+ }
94
123
  }
95
124
  },
96
125
  "additionalProperties": false
@@ -172,6 +201,28 @@
172
201
  },
173
202
  "$ci": {
174
203
  "type": "boolean"
204
+ },
205
+ "$in": {
206
+ "type": "array",
207
+ "maxItems": 100,
208
+ "items": {
209
+ "type": [
210
+ "string",
211
+ "number",
212
+ "boolean"
213
+ ]
214
+ }
215
+ },
216
+ "$nin": {
217
+ "type": "array",
218
+ "maxItems": 100,
219
+ "items": {
220
+ "type": [
221
+ "string",
222
+ "number",
223
+ "boolean"
224
+ ]
225
+ }
175
226
  }
176
227
  },
177
228
  "additionalProperties": false
@@ -253,6 +304,28 @@
253
304
  },
254
305
  "$ci": {
255
306
  "type": "boolean"
307
+ },
308
+ "$in": {
309
+ "type": "array",
310
+ "maxItems": 100,
311
+ "items": {
312
+ "type": [
313
+ "string",
314
+ "number",
315
+ "boolean"
316
+ ]
317
+ }
318
+ },
319
+ "$nin": {
320
+ "type": "array",
321
+ "maxItems": 100,
322
+ "items": {
323
+ "type": [
324
+ "string",
325
+ "number",
326
+ "boolean"
327
+ ]
328
+ }
256
329
  }
257
330
  },
258
331
  "additionalProperties": false
@@ -334,6 +407,28 @@
334
407
  },
335
408
  "$ci": {
336
409
  "type": "boolean"
410
+ },
411
+ "$in": {
412
+ "type": "array",
413
+ "maxItems": 100,
414
+ "items": {
415
+ "type": [
416
+ "string",
417
+ "number",
418
+ "boolean"
419
+ ]
420
+ }
421
+ },
422
+ "$nin": {
423
+ "type": "array",
424
+ "maxItems": 100,
425
+ "items": {
426
+ "type": [
427
+ "string",
428
+ "number",
429
+ "boolean"
430
+ ]
431
+ }
337
432
  }
338
433
  },
339
434
  "additionalProperties": false
@@ -415,6 +510,28 @@
415
510
  },
416
511
  "$ci": {
417
512
  "type": "boolean"
513
+ },
514
+ "$in": {
515
+ "type": "array",
516
+ "maxItems": 100,
517
+ "items": {
518
+ "type": [
519
+ "string",
520
+ "number",
521
+ "boolean"
522
+ ]
523
+ }
524
+ },
525
+ "$nin": {
526
+ "type": "array",
527
+ "maxItems": 100,
528
+ "items": {
529
+ "type": [
530
+ "string",
531
+ "number",
532
+ "boolean"
533
+ ]
534
+ }
418
535
  }
419
536
  },
420
537
  "additionalProperties": false
@@ -496,6 +613,28 @@
496
613
  },
497
614
  "$ci": {
498
615
  "type": "boolean"
616
+ },
617
+ "$in": {
618
+ "type": "array",
619
+ "maxItems": 100,
620
+ "items": {
621
+ "type": [
622
+ "string",
623
+ "number",
624
+ "boolean"
625
+ ]
626
+ }
627
+ },
628
+ "$nin": {
629
+ "type": "array",
630
+ "maxItems": 100,
631
+ "items": {
632
+ "type": [
633
+ "string",
634
+ "number",
635
+ "boolean"
636
+ ]
637
+ }
499
638
  }
500
639
  },
501
640
  "additionalProperties": false
@@ -577,6 +716,28 @@
577
716
  },
578
717
  "$ci": {
579
718
  "type": "boolean"
719
+ },
720
+ "$in": {
721
+ "type": "array",
722
+ "maxItems": 100,
723
+ "items": {
724
+ "type": [
725
+ "string",
726
+ "number",
727
+ "boolean"
728
+ ]
729
+ }
730
+ },
731
+ "$nin": {
732
+ "type": "array",
733
+ "maxItems": 100,
734
+ "items": {
735
+ "type": [
736
+ "string",
737
+ "number",
738
+ "boolean"
739
+ ]
740
+ }
580
741
  }
581
742
  },
582
743
  "additionalProperties": false
@@ -658,6 +819,28 @@
658
819
  },
659
820
  "$ci": {
660
821
  "type": "boolean"
822
+ },
823
+ "$in": {
824
+ "type": "array",
825
+ "maxItems": 100,
826
+ "items": {
827
+ "type": [
828
+ "string",
829
+ "number",
830
+ "boolean"
831
+ ]
832
+ }
833
+ },
834
+ "$nin": {
835
+ "type": "array",
836
+ "maxItems": 100,
837
+ "items": {
838
+ "type": [
839
+ "string",
840
+ "number",
841
+ "boolean"
842
+ ]
843
+ }
661
844
  }
662
845
  },
663
846
  "additionalProperties": false
@@ -739,6 +922,28 @@
739
922
  },
740
923
  "$ci": {
741
924
  "type": "boolean"
925
+ },
926
+ "$in": {
927
+ "type": "array",
928
+ "maxItems": 100,
929
+ "items": {
930
+ "type": [
931
+ "string",
932
+ "number",
933
+ "boolean"
934
+ ]
935
+ }
936
+ },
937
+ "$nin": {
938
+ "type": "array",
939
+ "maxItems": 100,
940
+ "items": {
941
+ "type": [
942
+ "string",
943
+ "number",
944
+ "boolean"
945
+ ]
946
+ }
742
947
  }
743
948
  },
744
949
  "additionalProperties": false