@itentialopensource/adapter-hyas_protect 0.1.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.
Files changed (76) hide show
  1. package/.eslintignore +5 -0
  2. package/.eslintrc.js +18 -0
  3. package/.jshintrc +3 -0
  4. package/AUTH.md +39 -0
  5. package/BROKER.md +199 -0
  6. package/CALLS.md +224 -0
  7. package/CHANGELOG.md +9 -0
  8. package/CODE_OF_CONDUCT.md +43 -0
  9. package/CONTRIBUTING.md +172 -0
  10. package/ENHANCE.md +69 -0
  11. package/LICENSE +201 -0
  12. package/PROPERTIES.md +641 -0
  13. package/README.md +337 -0
  14. package/SUMMARY.md +9 -0
  15. package/SYSTEMINFO.md +11 -0
  16. package/TROUBLESHOOT.md +47 -0
  17. package/adapter.js +1577 -0
  18. package/adapterBase.js +1787 -0
  19. package/entities/.generic/action.json +214 -0
  20. package/entities/.generic/schema.json +28 -0
  21. package/entities/.system/action.json +50 -0
  22. package/entities/.system/mockdatafiles/getToken-default.json +3 -0
  23. package/entities/.system/mockdatafiles/healthcheck-default.json +3 -0
  24. package/entities/.system/schema.json +19 -0
  25. package/entities/.system/schemaTokenReq.json +53 -0
  26. package/entities/.system/schemaTokenResp.json +53 -0
  27. package/entities/Logs/action.json +44 -0
  28. package/entities/Logs/mockdatafiles/newcastleProtectHistogramsHistogramArtifact-default.json +4 -0
  29. package/entities/Logs/mockdatafiles/newcastleProtectLogsLogs-default.json +64 -0
  30. package/entities/Logs/schema.json +20 -0
  31. package/entities/Overview/action.json +84 -0
  32. package/entities/Overview/mockdatafiles/newcastleProtectBarChartsBar-default.json +11 -0
  33. package/entities/Overview/mockdatafiles/newcastleProtectHistogramsHistogram-default.json +10 -0
  34. package/entities/Overview/mockdatafiles/newcastleProtectSummariesSummary-default.json +5 -0
  35. package/entities/Overview/mockdatafiles/newcastleProtectTopChartsAggregates-default.json +55 -0
  36. package/entities/Overview/schema.json +22 -0
  37. package/entities/Passthrough/action.json +24 -0
  38. package/entities/Passthrough/mockdatafiles/newcastleProtectPassthroughPassthrough-default.json +12 -0
  39. package/entities/Passthrough/schema.json +19 -0
  40. package/entities/Reports/action.json +44 -0
  41. package/entities/Reports/mockdatafiles/newcastleProtectReportsGetReports-default.json +54 -0
  42. package/entities/Reports/schema.json +20 -0
  43. package/error.json +190 -0
  44. package/package.json +87 -0
  45. package/pronghorn.json +1345 -0
  46. package/propertiesDecorators.json +14 -0
  47. package/propertiesSchema.json +1248 -0
  48. package/refs?service=git-upload-pack +0 -0
  49. package/report/HYAS-OpenApi3Json.json +1400 -0
  50. package/report/adapterInfo.json +10 -0
  51. package/report/creationReport.json +260 -0
  52. package/sampleProperties.json +195 -0
  53. package/test/integration/adapterTestBasicGet.js +83 -0
  54. package/test/integration/adapterTestConnectivity.js +93 -0
  55. package/test/integration/adapterTestIntegration.js +589 -0
  56. package/test/unit/adapterBaseTestUnit.js +949 -0
  57. package/test/unit/adapterTestUnit.js +1555 -0
  58. package/utils/adapterInfo.js +206 -0
  59. package/utils/addAuth.js +94 -0
  60. package/utils/artifactize.js +146 -0
  61. package/utils/basicGet.js +50 -0
  62. package/utils/checkMigrate.js +63 -0
  63. package/utils/entitiesToDB.js +178 -0
  64. package/utils/findPath.js +74 -0
  65. package/utils/methodDocumentor.js +225 -0
  66. package/utils/modify.js +154 -0
  67. package/utils/packModificationScript.js +35 -0
  68. package/utils/patches2bundledDeps.js +90 -0
  69. package/utils/pre-commit.sh +32 -0
  70. package/utils/removeHooks.js +20 -0
  71. package/utils/setup.js +33 -0
  72. package/utils/tbScript.js +246 -0
  73. package/utils/tbUtils.js +490 -0
  74. package/utils/testRunner.js +298 -0
  75. package/utils/troubleshootingAdapter.js +195 -0
  76. package/workflows/README.md +3 -0
package/pronghorn.json ADDED
@@ -0,0 +1,1345 @@
1
+ {
2
+ "id": "@itentialopensource/adapter-hyas_protect",
3
+ "type": "Adapter",
4
+ "export": "HyasProtect",
5
+ "title": "Hyas_protect",
6
+ "src": "adapter.js",
7
+ "roles": [
8
+ "admin"
9
+ ],
10
+ "methods": [
11
+ {
12
+ "name": "iapUpdateAdapterConfiguration",
13
+ "summary": "Updates the adapter configuration",
14
+ "description": "Updates the adapter configuration file with the provided changes",
15
+ "input": [
16
+ {
17
+ "name": "configFile",
18
+ "type": "string",
19
+ "info": "The name of the file to change",
20
+ "required": true,
21
+ "schema": {
22
+ "title": "configFile",
23
+ "type": "string"
24
+ }
25
+ },
26
+ {
27
+ "name": "changes",
28
+ "type": "object",
29
+ "info": "JSON object containing the configuration changes",
30
+ "required": true,
31
+ "schema": {
32
+ "title": "changes",
33
+ "type": "object"
34
+ }
35
+ },
36
+ {
37
+ "name": "entity",
38
+ "type": "string",
39
+ "info": "The entity in which the changes are being made",
40
+ "required": false,
41
+ "schema": {
42
+ "title": "entity",
43
+ "type": "string"
44
+ }
45
+ },
46
+ {
47
+ "name": "type",
48
+ "type": "string",
49
+ "info": "The type of file to change - action, schema, or mock",
50
+ "required": false,
51
+ "schema": {
52
+ "title": "type",
53
+ "type": "string"
54
+ }
55
+ },
56
+ {
57
+ "name": "action",
58
+ "type": "string",
59
+ "info": "The action to be changed",
60
+ "required": false,
61
+ "schema": {
62
+ "title": "action",
63
+ "type": "string"
64
+ }
65
+ }
66
+ ],
67
+ "output": {
68
+ "name": "result",
69
+ "type": "object",
70
+ "description": "A JSON Object containing status, code and the result",
71
+ "schema": {
72
+ "title": "result",
73
+ "type": "object"
74
+ }
75
+ },
76
+ "roles": [
77
+ "admin"
78
+ ],
79
+ "route": {
80
+ "verb": "POST",
81
+ "path": "/iapUpdateAdapterConfiguration"
82
+ },
83
+ "task": true
84
+ },
85
+ {
86
+ "name": "iapFindAdapterPath",
87
+ "summary": "Provides the ability to see if a particular API path is supported by the adapter",
88
+ "description": "Provides the ability to see if a particular API path is supported by the adapter",
89
+ "input": [
90
+ {
91
+ "name": "apiPath",
92
+ "type": "string",
93
+ "info": "The API Path you want to check - make sure to not include base path and version",
94
+ "description": "The API Path you want to check - make sure to not include base path and version",
95
+ "schema": {
96
+ "title": "apiPath",
97
+ "type": "string"
98
+ },
99
+ "required": true
100
+ }
101
+ ],
102
+ "output": {
103
+ "name": "result",
104
+ "type": "object",
105
+ "description": "A JSON Object containing the result",
106
+ "schema": {
107
+ "title": "result",
108
+ "type": "object"
109
+ }
110
+ },
111
+ "roles": [
112
+ "admin"
113
+ ],
114
+ "route": {
115
+ "verb": "POST",
116
+ "path": "/iapFindAdapterPath"
117
+ },
118
+ "task": true
119
+ },
120
+ {
121
+ "name": "iapSuspendAdapter",
122
+ "summary": "Suspends the adapter",
123
+ "description": "Suspends the adapter",
124
+ "input": [
125
+ {
126
+ "name": "mode",
127
+ "type": "enum",
128
+ "enumerals": [
129
+ "pause",
130
+ "error"
131
+ ],
132
+ "info": "How incoming requests are handled. Defaults to 'pause'",
133
+ "description": "How incoming requests are handled. Defaults to 'pause'",
134
+ "schema": {
135
+ "title": "mode",
136
+ "type": "string"
137
+ },
138
+ "required": false
139
+ }
140
+ ],
141
+ "output": {
142
+ "name": "result",
143
+ "type": "object",
144
+ "description": "A JSON Object containing the adapter suspended status",
145
+ "schema": {
146
+ "title": "result",
147
+ "type": "object"
148
+ }
149
+ },
150
+ "roles": [
151
+ "admin"
152
+ ],
153
+ "route": {
154
+ "verb": "POST",
155
+ "path": "/iapSuspendAdapter"
156
+ },
157
+ "task": true
158
+ },
159
+ {
160
+ "name": "iapUnsuspendAdapter",
161
+ "summary": "Unsuspends the adapter",
162
+ "description": "Unsuspends the adapter",
163
+ "input": [],
164
+ "output": {
165
+ "name": "result",
166
+ "type": "object",
167
+ "description": "A JSON Object containing the adapter suspended status",
168
+ "schema": {
169
+ "title": "result",
170
+ "type": "object"
171
+ }
172
+ },
173
+ "roles": [
174
+ "admin"
175
+ ],
176
+ "route": {
177
+ "verb": "POST",
178
+ "path": "/iapUnsuspendAdapter"
179
+ },
180
+ "task": true
181
+ },
182
+ {
183
+ "name": "iapGetAdapterQueue",
184
+ "summary": "Return the requests that are waiting in the queue if throttling is enabled",
185
+ "description": "Return the requests that are waiting in the queue if throttling is enabled",
186
+ "input": [],
187
+ "output": {
188
+ "name": "result",
189
+ "type": "object",
190
+ "description": "A JSON Object containing the adapter queue",
191
+ "schema": {
192
+ "title": "result",
193
+ "type": "object"
194
+ }
195
+ },
196
+ "roles": [
197
+ "admin"
198
+ ],
199
+ "route": {
200
+ "verb": "POST",
201
+ "path": "/iapGetAdapterQueue"
202
+ },
203
+ "task": true
204
+ },
205
+ {
206
+ "name": "iapTroubleshootAdapter",
207
+ "summary": "Runs troubleshoot script for adapter",
208
+ "description": "Runs troubleshoot script for adapter",
209
+ "input": [
210
+ {
211
+ "name": "props",
212
+ "type": "object",
213
+ "info": "Object containing configuration, healthcheck and auth properties {'connProps':{'host': 'api.service.com', 'base_path': '/', 'protocol': 'http', 'port': 443, 'version': 'v1'},'healthCheckEndpoint': '/healthcheck', 'auth': {'auth_method': 'no authentication', 'username': 'username', 'password': 'password'}}",
214
+ "required": true,
215
+ "schema": {
216
+ "title": "props",
217
+ "type": "object"
218
+ }
219
+ },
220
+ {
221
+ "name": "persistFlag",
222
+ "type": "boolean",
223
+ "info": "Whether the input properties should be saved",
224
+ "required": true
225
+ }
226
+ ],
227
+ "output": {
228
+ "name": "result",
229
+ "type": "object",
230
+ "description": "A JSON Object containing the test results",
231
+ "schema": {
232
+ "title": "result",
233
+ "type": "object"
234
+ }
235
+ },
236
+ "roles": [
237
+ "admin"
238
+ ],
239
+ "route": {
240
+ "verb": "POST",
241
+ "path": "/iapTroubleshootAdapter"
242
+ },
243
+ "task": true
244
+ },
245
+ {
246
+ "name": "iapRunAdapterHealthcheck",
247
+ "summary": "Runs healthcheck script for adapter",
248
+ "description": "Runs healthcheck script for adapter",
249
+ "input": [],
250
+ "output": {
251
+ "name": "result",
252
+ "type": "boolean",
253
+ "description": "Whether healthcheck passed or failed"
254
+ },
255
+ "roles": [
256
+ "admin"
257
+ ],
258
+ "route": {
259
+ "verb": "POST",
260
+ "path": "/iapRunAdapterHealthcheck"
261
+ },
262
+ "task": true
263
+ },
264
+ {
265
+ "name": "iapRunAdapterConnectivity",
266
+ "summary": "Runs connectivity check script for adapter",
267
+ "description": "Runs connectivity check script for adapter",
268
+ "input": [],
269
+ "output": {
270
+ "name": "result",
271
+ "type": "object",
272
+ "description": "A JSON Object containing the test results",
273
+ "schema": {
274
+ "title": "result",
275
+ "type": "object"
276
+ }
277
+ },
278
+ "roles": [
279
+ "admin"
280
+ ],
281
+ "route": {
282
+ "verb": "POST",
283
+ "path": "/iapRunAdapterConnectivity"
284
+ },
285
+ "task": true
286
+ },
287
+ {
288
+ "name": "iapRunAdapterBasicGet",
289
+ "summary": "Runs basicGet script for adapter",
290
+ "description": "Runs basicGet script for adapter",
291
+ "input": [],
292
+ "output": {
293
+ "name": "result",
294
+ "type": "object",
295
+ "description": "A JSON Object containing the test results",
296
+ "schema": {
297
+ "title": "result",
298
+ "type": "object"
299
+ }
300
+ },
301
+ "roles": [
302
+ "admin"
303
+ ],
304
+ "route": {
305
+ "verb": "POST",
306
+ "path": "/iapRunAdapterBasicGet"
307
+ },
308
+ "task": true
309
+ },
310
+ {
311
+ "name": "iapMoveAdapterEntitiesToDB",
312
+ "summary": "Moves entities from an adapter into the IAP database",
313
+ "description": "Moves entities from an adapter into the IAP database",
314
+ "input": [],
315
+ "output": {
316
+ "name": "res",
317
+ "type": "object",
318
+ "description": "A JSON Object containing status, code and the response from the mongo transaction",
319
+ "schema": {
320
+ "title": "res",
321
+ "type": "object"
322
+ }
323
+ },
324
+ "roles": [
325
+ "admin"
326
+ ],
327
+ "route": {
328
+ "verb": "POST",
329
+ "path": "/iapMoveAdapterEntitiesToDB"
330
+ },
331
+ "task": true
332
+ },
333
+ {
334
+ "name": "genericAdapterRequest",
335
+ "summary": "Makes the requested generic call",
336
+ "description": "Makes the requested generic call",
337
+ "input": [
338
+ {
339
+ "name": "uriPath",
340
+ "type": "string",
341
+ "info": "the path of the api call - do not include the host, port, base path or version",
342
+ "description": "the path of the api call",
343
+ "schema": {
344
+ "title": "uriPath",
345
+ "type": "string"
346
+ },
347
+ "required": true
348
+ },
349
+ {
350
+ "name": "restMethod",
351
+ "type": "string",
352
+ "info": "the rest method (GET, POST, PUT, PATCH, DELETE)",
353
+ "description": "the rest method (GET, POST, PUT, PATCH, DELETE)",
354
+ "schema": {
355
+ "title": "restMethod",
356
+ "type": "string"
357
+ },
358
+ "required": true
359
+ },
360
+ {
361
+ "name": "queryData",
362
+ "type": "object",
363
+ "info": "the query parameters to be put on the url (optional)",
364
+ "description": "the query parameters to be put on the url (optional)",
365
+ "schema": {
366
+ "title": "queryData",
367
+ "type": "object"
368
+ },
369
+ "required": false
370
+ },
371
+ {
372
+ "name": "requestBody",
373
+ "type": "object",
374
+ "info": "the payload to be sent with the request (optional)",
375
+ "description": "the payload to be sent with the request (optional)",
376
+ "schema": {
377
+ "title": "requestBody",
378
+ "type": "object"
379
+ },
380
+ "required": false
381
+ },
382
+ {
383
+ "name": "addlHeaders",
384
+ "type": "object",
385
+ "info": "additional headers to be put on the call (optional)",
386
+ "description": "additional headers to be put on the call (optional)",
387
+ "schema": {
388
+ "title": "addlHeaders",
389
+ "type": "object"
390
+ },
391
+ "required": false
392
+ }
393
+ ],
394
+ "output": {
395
+ "name": "result",
396
+ "type": "object",
397
+ "description": "A JSON Object containing status, code and the result",
398
+ "schema": {
399
+ "title": "result",
400
+ "type": "object"
401
+ }
402
+ },
403
+ "roles": [
404
+ "admin"
405
+ ],
406
+ "route": {
407
+ "verb": "POST",
408
+ "path": "/genericAdapterRequest"
409
+ },
410
+ "task": true
411
+ },
412
+ {
413
+ "name": "genericAdapterRequestNoBasePath",
414
+ "summary": "Makes the requested generic call",
415
+ "description": "Makes the requested generic call",
416
+ "input": [
417
+ {
418
+ "name": "uriPath",
419
+ "type": "string",
420
+ "info": "the path of the api call - do not include the host, port, base path or version",
421
+ "description": "the path of the api call",
422
+ "schema": {
423
+ "title": "uriPath",
424
+ "type": "string"
425
+ },
426
+ "required": true
427
+ },
428
+ {
429
+ "name": "restMethod",
430
+ "type": "string",
431
+ "info": "the rest method (GET, POST, PUT, PATCH, DELETE)",
432
+ "description": "the rest method (GET, POST, PUT, PATCH, DELETE)",
433
+ "schema": {
434
+ "title": "restMethod",
435
+ "type": "string"
436
+ },
437
+ "required": true
438
+ },
439
+ {
440
+ "name": "queryData",
441
+ "type": "object",
442
+ "info": "the query parameters to be put on the url (optional)",
443
+ "description": "the query parameters to be put on the url (optional)",
444
+ "schema": {
445
+ "title": "queryData",
446
+ "type": "object"
447
+ },
448
+ "required": false
449
+ },
450
+ {
451
+ "name": "requestBody",
452
+ "type": "object",
453
+ "info": "the payload to be sent with the request (optional)",
454
+ "description": "the payload to be sent with the request (optional)",
455
+ "schema": {
456
+ "title": "requestBody",
457
+ "type": "object"
458
+ },
459
+ "required": false
460
+ },
461
+ {
462
+ "name": "addlHeaders",
463
+ "type": "object",
464
+ "info": "additional headers to be put on the call (optional)",
465
+ "description": "additional headers to be put on the call (optional)",
466
+ "schema": {
467
+ "title": "addlHeaders",
468
+ "type": "object"
469
+ },
470
+ "required": false
471
+ }
472
+ ],
473
+ "output": {
474
+ "name": "result",
475
+ "type": "object",
476
+ "description": "A JSON Object containing status, code and the result",
477
+ "schema": {
478
+ "title": "result",
479
+ "type": "object"
480
+ }
481
+ },
482
+ "roles": [
483
+ "admin"
484
+ ],
485
+ "route": {
486
+ "verb": "POST",
487
+ "path": "/genericAdapterRequestNoBasePath"
488
+ },
489
+ "task": true
490
+ },
491
+ {
492
+ "name": "getDevice",
493
+ "summary": "Get the Appliance",
494
+ "description": "Get the Appliance",
495
+ "input": [
496
+ {
497
+ "name": "deviceName",
498
+ "type": "string",
499
+ "info": "An Appliance Device Name",
500
+ "required": true,
501
+ "schema": {
502
+ "title": "deviceName",
503
+ "type": "string"
504
+ }
505
+ }
506
+ ],
507
+ "output": {
508
+ "name": "result",
509
+ "type": "object",
510
+ "description": "A JSON Object containing status, code and the result",
511
+ "schema": {
512
+ "title": "result",
513
+ "type": "object"
514
+ }
515
+ },
516
+ "roles": [
517
+ "admin"
518
+ ],
519
+ "route": {
520
+ "verb": "POST",
521
+ "path": "/getDevice"
522
+ },
523
+ "task": true
524
+ },
525
+ {
526
+ "name": "getDevicesFiltered",
527
+ "summary": "Get Appliances that match the filter",
528
+ "description": "Get Appliances that match the filter",
529
+ "input": [
530
+ {
531
+ "name": "options",
532
+ "type": "object",
533
+ "info": "options - e.g. { 'start': 1, 'limit': 20, 'filter': { 'name': 'abc123' } }",
534
+ "required": true,
535
+ "schema": {
536
+ "title": "options",
537
+ "type": "object"
538
+ }
539
+ }
540
+ ],
541
+ "output": {
542
+ "name": "result",
543
+ "type": "array",
544
+ "description": "A JSON Object containing status, code and the result",
545
+ "schema": {
546
+ "title": "result",
547
+ "type": "array"
548
+ }
549
+ },
550
+ "roles": [
551
+ "admin"
552
+ ],
553
+ "route": {
554
+ "verb": "POST",
555
+ "path": "/getDevicesFiltered"
556
+ },
557
+ "task": true
558
+ },
559
+ {
560
+ "name": "isAlive",
561
+ "summary": "Checks the status for the provided Appliance",
562
+ "description": "Checks the status for the provided Appliance",
563
+ "input": [
564
+ {
565
+ "name": "deviceName",
566
+ "type": "string",
567
+ "info": "An Appliance Device Name",
568
+ "required": true,
569
+ "schema": {
570
+ "title": "deviceName",
571
+ "type": "string"
572
+ }
573
+ }
574
+ ],
575
+ "output": {
576
+ "name": "result",
577
+ "type": "boolean",
578
+ "description": "A JSON Object containing status, code and the result",
579
+ "schema": {
580
+ "title": "result",
581
+ "type": "boolean"
582
+ }
583
+ },
584
+ "roles": [
585
+ "admin"
586
+ ],
587
+ "route": {
588
+ "verb": "POST",
589
+ "path": "/isAlive"
590
+ },
591
+ "task": true
592
+ },
593
+ {
594
+ "name": "getConfig",
595
+ "summary": "Gets a config for the provided Appliance",
596
+ "description": "Gets a config for the provided Appliance",
597
+ "input": [
598
+ {
599
+ "name": "deviceName",
600
+ "type": "string",
601
+ "info": "An Appliance Device Name",
602
+ "required": true,
603
+ "schema": {
604
+ "title": "deviceName",
605
+ "type": "string"
606
+ }
607
+ },
608
+ {
609
+ "name": "format",
610
+ "type": "string",
611
+ "info": "The format to be returned - this is ignored as we always return json",
612
+ "required": false,
613
+ "schema": {
614
+ "title": "format",
615
+ "type": "string"
616
+ }
617
+ }
618
+ ],
619
+ "output": {
620
+ "name": "result",
621
+ "type": "object",
622
+ "description": "A JSON Object containing status, code and the result",
623
+ "schema": {
624
+ "title": "result",
625
+ "type": "object"
626
+ }
627
+ },
628
+ "roles": [
629
+ "admin"
630
+ ],
631
+ "route": {
632
+ "verb": "POST",
633
+ "path": "/getConfig"
634
+ },
635
+ "task": true
636
+ },
637
+ {
638
+ "name": "iapGetDeviceCount",
639
+ "summary": "Gets a device count from the system",
640
+ "description": "Gets a device count from the system",
641
+ "input": [],
642
+ "output": {
643
+ "name": "result",
644
+ "type": "object",
645
+ "description": "A JSON Object containing status, code and the result",
646
+ "schema": {
647
+ "title": "result",
648
+ "type": "object"
649
+ }
650
+ },
651
+ "roles": [
652
+ "admin"
653
+ ],
654
+ "route": {
655
+ "verb": "POST",
656
+ "path": "/iapGetDeviceCount"
657
+ },
658
+ "task": true
659
+ },
660
+ {
661
+ "name": "newcastleProtectTopChartsAggregates",
662
+ "summary": "newcastle.protect.top_charts.aggregates",
663
+ "description": "Get count aggregates for the top charts",
664
+ "input": [
665
+ {
666
+ "name": "body",
667
+ "type": "object",
668
+ "info": "The filter used to perform aggregate queries: object",
669
+ "required": true,
670
+ "schema": {
671
+ "allOf": [
672
+ {
673
+ "type": "object"
674
+ },
675
+ {
676
+ "description": "The filter used to perform aggregate queries"
677
+ }
678
+ ],
679
+ "definitions": {}
680
+ }
681
+ }
682
+ ],
683
+ "output": {
684
+ "name": "result",
685
+ "type": "object",
686
+ "description": "A JSON Object containing status, code and the result",
687
+ "schema": {
688
+ "allOf": [
689
+ {
690
+ "title": "aggregate_response",
691
+ "type": "object",
692
+ "properties": {
693
+ "query_type": {
694
+ "type": "string",
695
+ "description": "The query type that the aggregate is for",
696
+ "example": "fqdn"
697
+ },
698
+ "top_items": {
699
+ "type": "array",
700
+ "items": {
701
+ "title": "TopItem",
702
+ "type": "object",
703
+ "properties": {
704
+ "current_doc_count": {
705
+ "type": "integer",
706
+ "example": 9116
707
+ },
708
+ "key": {
709
+ "type": "string",
710
+ "example": "debug.opendns.com"
711
+ },
712
+ "previous_doc_count": {
713
+ "type": "integer",
714
+ "example": 7151
715
+ }
716
+ }
717
+ },
718
+ "description": "Top items"
719
+ }
720
+ },
721
+ "description": "Aggregate response"
722
+ },
723
+ {
724
+ "description": "Aggregate response"
725
+ }
726
+ ]
727
+ }
728
+ },
729
+ "roles": [
730
+ "admin"
731
+ ],
732
+ "route": {
733
+ "verb": "POST",
734
+ "path": "/newcastleProtectTopChartsAggregates"
735
+ },
736
+ "task": true
737
+ },
738
+ {
739
+ "name": "newcastleProtectBarChartsBar",
740
+ "summary": "newcastle.protect.bar_charts.bar",
741
+ "description": "Get bar chart data",
742
+ "input": [
743
+ {
744
+ "name": "body",
745
+ "type": "object",
746
+ "info": "The filter used to perform bar chart queries: object",
747
+ "required": true,
748
+ "schema": {
749
+ "allOf": [
750
+ {
751
+ "type": "object"
752
+ },
753
+ {
754
+ "description": "The filter used to perform bar chart queries"
755
+ }
756
+ ],
757
+ "definitions": {}
758
+ }
759
+ }
760
+ ],
761
+ "output": {
762
+ "name": "result",
763
+ "type": "object",
764
+ "description": "A JSON Object containing status, code and the result",
765
+ "schema": {
766
+ "allOf": [
767
+ {
768
+ "title": "bar_response",
769
+ "type": "object",
770
+ "properties": {
771
+ "query_type": {
772
+ "type": "string",
773
+ "description": "The query type that the aggregate is for",
774
+ "example": "no_answer_queries"
775
+ },
776
+ "top_items": {
777
+ "type": "array",
778
+ "items": {
779
+ "title": "TopItem1",
780
+ "type": "object",
781
+ "properties": {
782
+ "current_doc_count": {
783
+ "type": "integer",
784
+ "example": 369
785
+ },
786
+ "key": {
787
+ "type": "string",
788
+ "example": "2021-09-20 00:00:00"
789
+ },
790
+ "previous_doc_count": {
791
+ "type": "integer",
792
+ "example": 303
793
+ },
794
+ "previous_key": {
795
+ "type": "string",
796
+ "example": "2021-09-13 00:00:00"
797
+ }
798
+ }
799
+ },
800
+ "description": "Top items"
801
+ }
802
+ },
803
+ "description": "Bar chart response"
804
+ },
805
+ {
806
+ "description": "Bar chart response"
807
+ }
808
+ ]
809
+ }
810
+ },
811
+ "roles": [
812
+ "admin"
813
+ ],
814
+ "route": {
815
+ "verb": "POST",
816
+ "path": "/newcastleProtectBarChartsBar"
817
+ },
818
+ "task": true
819
+ },
820
+ {
821
+ "name": "newcastleProtectHistogramsHistogram",
822
+ "summary": "newcastle.protect.histograms.histogram",
823
+ "description": "Get histogram data for the real time charts",
824
+ "input": [
825
+ {
826
+ "name": "body",
827
+ "type": "object",
828
+ "info": "The filter used to perform histogram queries: object",
829
+ "required": true,
830
+ "schema": {
831
+ "allOf": [
832
+ {
833
+ "type": "object"
834
+ },
835
+ {
836
+ "description": "The filter used to perform histogram queries"
837
+ }
838
+ ],
839
+ "definitions": {}
840
+ }
841
+ }
842
+ ],
843
+ "output": {
844
+ "name": "result",
845
+ "type": "object",
846
+ "description": "A JSON Object containing status, code and the result",
847
+ "schema": {
848
+ "allOf": [
849
+ {
850
+ "title": "histogram_response",
851
+ "type": "object",
852
+ "properties": {
853
+ "query_type": {
854
+ "type": "string",
855
+ "description": "The query type that the aggregate is for",
856
+ "example": "queries"
857
+ },
858
+ "top_items": {
859
+ "type": "array",
860
+ "items": {
861
+ "title": "TopItem",
862
+ "type": "object",
863
+ "properties": {
864
+ "current_doc_count": {
865
+ "type": "integer",
866
+ "example": 9116
867
+ },
868
+ "key": {
869
+ "type": "string",
870
+ "example": "debug.opendns.com"
871
+ },
872
+ "previous_doc_count": {
873
+ "type": "integer",
874
+ "example": 7151
875
+ }
876
+ }
877
+ },
878
+ "description": "Top items"
879
+ }
880
+ },
881
+ "description": "Histogram response"
882
+ },
883
+ {
884
+ "description": "Histogram response"
885
+ }
886
+ ]
887
+ }
888
+ },
889
+ "roles": [
890
+ "admin"
891
+ ],
892
+ "route": {
893
+ "verb": "POST",
894
+ "path": "/newcastleProtectHistogramsHistogram"
895
+ },
896
+ "task": true
897
+ },
898
+ {
899
+ "name": "newcastleProtectSummariesSummary",
900
+ "summary": "newcastle.protect.summaries.summary",
901
+ "description": "Get request summaries",
902
+ "input": [
903
+ {
904
+ "name": "body",
905
+ "type": "object",
906
+ "info": "The filter used to perform summary queries: object",
907
+ "required": true,
908
+ "schema": {
909
+ "allOf": [
910
+ {
911
+ "type": "object"
912
+ },
913
+ {
914
+ "description": "The filter used to perform summary queries"
915
+ }
916
+ ],
917
+ "definitions": {}
918
+ }
919
+ }
920
+ ],
921
+ "output": {
922
+ "name": "result",
923
+ "type": "object",
924
+ "description": "A JSON Object containing status, code and the result",
925
+ "schema": {
926
+ "allOf": [
927
+ {
928
+ "title": "summary_response",
929
+ "type": "object",
930
+ "properties": {
931
+ "day_count": {
932
+ "type": "integer",
933
+ "example": 1
934
+ },
935
+ "query_type": {
936
+ "type": "string",
937
+ "description": "The query type that the aggregate is for",
938
+ "example": "blocked"
939
+ },
940
+ "total_count": {
941
+ "type": "integer",
942
+ "example": 0
943
+ }
944
+ },
945
+ "description": "Summary response"
946
+ },
947
+ {
948
+ "description": "Summary response"
949
+ }
950
+ ]
951
+ }
952
+ },
953
+ "roles": [
954
+ "admin"
955
+ ],
956
+ "route": {
957
+ "verb": "POST",
958
+ "path": "/newcastleProtectSummariesSummary"
959
+ },
960
+ "task": true
961
+ },
962
+ {
963
+ "name": "newcastleProtectHistogramsHistogramArtifact",
964
+ "summary": "newcastle.protect.histograms.histogram_artifact",
965
+ "description": "Get histogram data for the pop out panel timeline chart",
966
+ "input": [
967
+ {
968
+ "name": "body",
969
+ "type": "object",
970
+ "info": "The filter used to perform histogram queries: object",
971
+ "required": true,
972
+ "schema": {
973
+ "allOf": [
974
+ {
975
+ "type": "object"
976
+ },
977
+ {
978
+ "description": "The filter used to perform histogram queries"
979
+ }
980
+ ],
981
+ "definitions": {}
982
+ }
983
+ }
984
+ ],
985
+ "output": {
986
+ "name": "result",
987
+ "type": "object",
988
+ "description": "A JSON Object containing status, code and the result",
989
+ "schema": {
990
+ "allOf": [
991
+ {
992
+ "title": "histogram_artifact_response",
993
+ "type": "object",
994
+ "properties": {
995
+ "days": {
996
+ "type": "integer",
997
+ "description": "The number of days the histogram is for"
998
+ },
999
+ "query_type": {
1000
+ "type": "string",
1001
+ "description": "The query type that the histogram is for"
1002
+ }
1003
+ },
1004
+ "description": "Histogram response"
1005
+ },
1006
+ {
1007
+ "description": "Histogram response"
1008
+ }
1009
+ ]
1010
+ }
1011
+ },
1012
+ "roles": [
1013
+ "admin"
1014
+ ],
1015
+ "route": {
1016
+ "verb": "POST",
1017
+ "path": "/newcastleProtectHistogramsHistogramArtifact"
1018
+ },
1019
+ "task": true
1020
+ },
1021
+ {
1022
+ "name": "newcastleProtectLogsLogs",
1023
+ "summary": "newcastle.protect.logs.logs",
1024
+ "description": "Get logs",
1025
+ "input": [
1026
+ {
1027
+ "name": "body",
1028
+ "type": "object",
1029
+ "info": "The filter used to perform log queries: object",
1030
+ "required": true,
1031
+ "schema": {
1032
+ "allOf": [
1033
+ {
1034
+ "type": "object"
1035
+ },
1036
+ {
1037
+ "description": "The filter used to perform log queries"
1038
+ }
1039
+ ],
1040
+ "definitions": {}
1041
+ }
1042
+ }
1043
+ ],
1044
+ "output": {
1045
+ "name": "result",
1046
+ "type": "object",
1047
+ "description": "A JSON Object containing status, code and the result",
1048
+ "schema": {
1049
+ "allOf": [
1050
+ {
1051
+ "title": "log_response",
1052
+ "type": "object",
1053
+ "properties": {
1054
+ "aggregates": {
1055
+ "allOf": [
1056
+ {
1057
+ "title": "Aggregates",
1058
+ "type": "object",
1059
+ "properties": {
1060
+ "queries": {
1061
+ "type": "array",
1062
+ "items": {
1063
+ "title": "Query2",
1064
+ "type": "object",
1065
+ "properties": {
1066
+ "count": {
1067
+ "type": "integer",
1068
+ "description": "Query type count",
1069
+ "example": 2058
1070
+ },
1071
+ "key": {
1072
+ "type": "string",
1073
+ "description": "Query type key",
1074
+ "example": "AAAA"
1075
+ },
1076
+ "name": {
1077
+ "type": "string",
1078
+ "description": "Query type display name",
1079
+ "example": "AAAA"
1080
+ }
1081
+ },
1082
+ "description": "Query type"
1083
+ },
1084
+ "description": "Collection of query type codes and counts"
1085
+ },
1086
+ "responses": {
1087
+ "type": "array",
1088
+ "items": {
1089
+ "title": "Response",
1090
+ "type": "object",
1091
+ "properties": {
1092
+ "count": {
1093
+ "type": "integer",
1094
+ "description": "Response code count",
1095
+ "example": 8980
1096
+ },
1097
+ "key": {
1098
+ "type": "string",
1099
+ "description": "Response code key",
1100
+ "example": "NoError"
1101
+ },
1102
+ "name": {
1103
+ "type": "string",
1104
+ "description": "Response code display name",
1105
+ "example": "NoError"
1106
+ }
1107
+ },
1108
+ "description": "Response codes"
1109
+ },
1110
+ "description": "Collection of response codes and counts"
1111
+ }
1112
+ },
1113
+ "description": "Aggregates for the filter drop downs"
1114
+ },
1115
+ {
1116
+ "description": "Aggregates for the filter drop downs"
1117
+ }
1118
+ ]
1119
+ },
1120
+ "total_count": {
1121
+ "type": "integer",
1122
+ "description": "total count of records without pagination",
1123
+ "example": 197
1124
+ }
1125
+ },
1126
+ "description": "Summary response"
1127
+ },
1128
+ {
1129
+ "description": "Summary response"
1130
+ }
1131
+ ]
1132
+ }
1133
+ },
1134
+ "roles": [
1135
+ "admin"
1136
+ ],
1137
+ "route": {
1138
+ "verb": "POST",
1139
+ "path": "/newcastleProtectLogsLogs"
1140
+ },
1141
+ "task": true
1142
+ },
1143
+ {
1144
+ "name": "newcastleProtectPassthroughPassthrough",
1145
+ "summary": "newcastle.protect.passthrough.passthrough",
1146
+ "description": "Get passthrough records",
1147
+ "input": [
1148
+ {
1149
+ "name": "body",
1150
+ "type": "object",
1151
+ "info": "The filter used to perform passthrough queries: object",
1152
+ "required": true,
1153
+ "schema": {
1154
+ "allOf": [
1155
+ {
1156
+ "type": "object"
1157
+ },
1158
+ {
1159
+ "description": "The filter used to perform passthrough queries"
1160
+ }
1161
+ ],
1162
+ "definitions": {}
1163
+ }
1164
+ }
1165
+ ],
1166
+ "output": {
1167
+ "name": "result",
1168
+ "type": "object",
1169
+ "description": "A JSON Object containing status, code and the result",
1170
+ "schema": {
1171
+ "allOf": [
1172
+ {
1173
+ "title": "passthrough_response",
1174
+ "type": "object",
1175
+ "properties": {
1176
+ "logs": {
1177
+ "type": "array",
1178
+ "items": {
1179
+ "title": "Log",
1180
+ "type": "object",
1181
+ "properties": {
1182
+ "alt_status": {
1183
+ "type": "string",
1184
+ "description": "The status of the request made through ALT [blocked, allow]",
1185
+ "example": "allow"
1186
+ },
1187
+ "artifact": {
1188
+ "type": "string",
1189
+ "description": "The artifact looked up",
1190
+ "example": "google.com"
1191
+ },
1192
+ "hyas_status": {
1193
+ "type": "string",
1194
+ "description": "The status of the request made through HYAS [blocked, allow]",
1195
+ "example": "blocked"
1196
+ },
1197
+ "last_seen": {
1198
+ "type": "string",
1199
+ "description": "The most recent query for the artifact",
1200
+ "example": "2021-11-05T05:00:00"
1201
+ },
1202
+ "query_count": {
1203
+ "type": "integer",
1204
+ "description": "The aggregated count of how many times the artifact was looked up, limited to the current params",
1205
+ "example": 100
1206
+ }
1207
+ }
1208
+ },
1209
+ "description": "Collection of passthrough records"
1210
+ },
1211
+ "total_count": {
1212
+ "type": "integer",
1213
+ "description": "total count of records without pagination",
1214
+ "example": 197
1215
+ }
1216
+ },
1217
+ "description": "Passthrough response"
1218
+ },
1219
+ {
1220
+ "description": "Passthrough response"
1221
+ }
1222
+ ]
1223
+ }
1224
+ },
1225
+ "roles": [
1226
+ "admin"
1227
+ ],
1228
+ "route": {
1229
+ "verb": "POST",
1230
+ "path": "/newcastleProtectPassthroughPassthrough"
1231
+ },
1232
+ "task": true
1233
+ },
1234
+ {
1235
+ "name": "newcastleProtectReportsGetReport",
1236
+ "summary": "newcastle.protect.reports.get_report",
1237
+ "description": "Get executive report",
1238
+ "input": [
1239
+ {
1240
+ "name": "body",
1241
+ "type": "object",
1242
+ "info": "The filter used to generate the report: object",
1243
+ "required": true,
1244
+ "schema": {
1245
+ "allOf": [
1246
+ {
1247
+ "type": "object"
1248
+ },
1249
+ {
1250
+ "description": "The filter used to generate the report"
1251
+ }
1252
+ ],
1253
+ "definitions": {}
1254
+ }
1255
+ }
1256
+ ],
1257
+ "output": {
1258
+ "name": "result",
1259
+ "type": "object",
1260
+ "description": "A JSON Object containing status, code and the result",
1261
+ "schema": {
1262
+ "title": "result",
1263
+ "type": "object"
1264
+ }
1265
+ },
1266
+ "roles": [
1267
+ "admin"
1268
+ ],
1269
+ "route": {
1270
+ "verb": "POST",
1271
+ "path": "/newcastleProtectReportsGetReport"
1272
+ },
1273
+ "task": true
1274
+ },
1275
+ {
1276
+ "name": "newcastleProtectReportsGetReports",
1277
+ "summary": "newcastle.protect.reports.get_reports",
1278
+ "description": "Get list of executive reports",
1279
+ "input": [],
1280
+ "output": {
1281
+ "name": "result",
1282
+ "type": "object",
1283
+ "description": "A JSON Object containing status, code and the result",
1284
+ "schema": {
1285
+ "allOf": [
1286
+ {
1287
+ "title": "reports_response",
1288
+ "type": "object",
1289
+ "properties": {
1290
+ "reports": {
1291
+ "type": "array",
1292
+ "items": {
1293
+ "title": "Report",
1294
+ "type": "object",
1295
+ "properties": {
1296
+ "client_id": {
1297
+ "type": "string",
1298
+ "description": "Client ID"
1299
+ },
1300
+ "datetime": {
1301
+ "type": "string",
1302
+ "description": "Report generation datetime"
1303
+ },
1304
+ "datetime_end": {
1305
+ "type": "string",
1306
+ "description": "Report end date"
1307
+ },
1308
+ "datetime_start": {
1309
+ "type": "string",
1310
+ "description": "Report start date"
1311
+ },
1312
+ "report_id": {
1313
+ "type": "string",
1314
+ "description": "Report ID"
1315
+ }
1316
+ },
1317
+ "description": "Report"
1318
+ },
1319
+ "description": "Collection of reports"
1320
+ },
1321
+ "total_count": {
1322
+ "type": "integer",
1323
+ "description": "The total report count"
1324
+ }
1325
+ },
1326
+ "description": "List of reports and count"
1327
+ },
1328
+ {
1329
+ "description": "List of reports and count"
1330
+ }
1331
+ ]
1332
+ }
1333
+ },
1334
+ "roles": [
1335
+ "admin"
1336
+ ],
1337
+ "route": {
1338
+ "verb": "GET",
1339
+ "path": "/newcastleProtectReportsGetReports"
1340
+ },
1341
+ "task": true
1342
+ }
1343
+ ],
1344
+ "views": []
1345
+ }