@science-corporation/synapse 2.0.0 → 2.2.3

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 (57) hide show
  1. package/README.md +7 -0
  2. package/dist/api/api.d.ts +5047 -2381
  3. package/dist/api/api.js +12917 -6374
  4. package/dist/api/api.js.map +1 -1
  5. package/dist/api/proto.json +969 -451
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +1 -5
  8. package/dist/config.js.map +1 -1
  9. package/dist/device.d.ts +0 -1
  10. package/dist/device.d.ts.map +1 -1
  11. package/dist/device.js +1 -5
  12. package/dist/device.js.map +1 -1
  13. package/dist/nodes/index.d.ts +0 -2
  14. package/dist/nodes/index.d.ts.map +1 -1
  15. package/dist/nodes/index.js +1 -5
  16. package/dist/nodes/index.js.map +1 -1
  17. package/package.json +3 -2
  18. package/src/api/api.d.ts +5047 -2381
  19. package/src/api/api.js +13466 -6537
  20. package/src/api/proto.json +969 -451
  21. package/src/config.ts +1 -5
  22. package/src/device.ts +1 -5
  23. package/src/nodes/index.ts +0 -2
  24. package/synapse-api/README.md +1 -1
  25. package/synapse-api/api/app.proto +55 -0
  26. package/synapse-api/api/channel.proto +15 -1
  27. package/synapse-api/api/datatype.proto +97 -1
  28. package/synapse-api/api/device.proto +65 -0
  29. package/synapse-api/api/node.proto +19 -18
  30. package/synapse-api/api/nodes/application.proto +24 -0
  31. package/synapse-api/api/nodes/broadband_source.proto +1 -0
  32. package/synapse-api/api/nodes/disk_writer.proto +17 -0
  33. package/synapse-api/api/nodes/optical_stimulation.proto +29 -0
  34. package/synapse-api/api/nodes/signal_config.proto +2 -0
  35. package/synapse-api/api/performance.proto +29 -0
  36. package/synapse-api/api/query.proto +8 -0
  37. package/synapse-api/api/status.proto +6 -1
  38. package/synapse-api/api/synapse.proto +8 -31
  39. package/synapse-api/api/tap.proto +35 -0
  40. package/synapse-api/api/time.proto +53 -0
  41. package/dist/demo.d.ts +0 -2
  42. package/dist/demo.d.ts.map +0 -1
  43. package/dist/demo.js +0 -285
  44. package/dist/demo.js.map +0 -1
  45. package/dist/nodes/stream_in.d.ts +0 -15
  46. package/dist/nodes/stream_in.d.ts.map +0 -1
  47. package/dist/nodes/stream_in.js +0 -66
  48. package/dist/nodes/stream_in.js.map +0 -1
  49. package/dist/nodes/stream_out.d.ts +0 -23
  50. package/dist/nodes/stream_out.d.ts.map +0 -1
  51. package/dist/nodes/stream_out.js +0 -105
  52. package/dist/nodes/stream_out.js.map +0 -1
  53. package/src/demo.ts +0 -325
  54. package/src/nodes/stream_in.ts +0 -78
  55. package/src/nodes/stream_out.ts +0 -109
  56. package/synapse-api/api/nodes/stream_in.proto +0 -14
  57. package/synapse-api/api/nodes/stream_out.proto +0 -42
@@ -2,6 +2,236 @@
2
2
  "nested": {
3
3
  "synapse": {
4
4
  "nested": {
5
+ "FunctionProfile": {
6
+ "fields": {
7
+ "name": {
8
+ "type": "string",
9
+ "id": 1
10
+ },
11
+ "callCount": {
12
+ "type": "uint64",
13
+ "id": 2
14
+ },
15
+ "minDurationNs": {
16
+ "type": "uint64",
17
+ "id": 3
18
+ },
19
+ "maxDurationNs": {
20
+ "type": "uint64",
21
+ "id": 4
22
+ },
23
+ "averageDurationNs": {
24
+ "type": "uint64",
25
+ "id": 5
26
+ },
27
+ "medianDurationNs": {
28
+ "type": "uint64",
29
+ "id": 6
30
+ },
31
+ "p99DurationNs": {
32
+ "type": "uint64",
33
+ "id": 7
34
+ },
35
+ "latestDurationNs": {
36
+ "type": "uint64",
37
+ "id": 8
38
+ }
39
+ }
40
+ },
41
+ "NodeType": {
42
+ "values": {
43
+ "kNodeTypeUnknown": 0,
44
+ "kBroadbandSource": 3,
45
+ "kElectricalStimulation": 4,
46
+ "kOpticalStimulation": 5,
47
+ "kSpikeDetector": 6,
48
+ "kSpikeSource": 7,
49
+ "kSpectralFilter": 8,
50
+ "kDiskWriter": 9,
51
+ "kSpikeBinner": 10,
52
+ "kApplication": 11
53
+ },
54
+ "reserved": [
55
+ [
56
+ 1,
57
+ 1
58
+ ],
59
+ [
60
+ 2,
61
+ 2
62
+ ]
63
+ ]
64
+ },
65
+ "NodeConfig": {
66
+ "oneofs": {
67
+ "config": {
68
+ "oneof": [
69
+ "broadbandSource",
70
+ "electricalStimulation",
71
+ "opticalStimulation",
72
+ "spikeDetector",
73
+ "spectralFilter",
74
+ "diskWriter",
75
+ "spikeSource",
76
+ "spikeBinner",
77
+ "application"
78
+ ]
79
+ }
80
+ },
81
+ "fields": {
82
+ "type": {
83
+ "type": "NodeType",
84
+ "id": 1
85
+ },
86
+ "id": {
87
+ "type": "uint32",
88
+ "id": 2
89
+ },
90
+ "broadbandSource": {
91
+ "type": "BroadbandSourceConfig",
92
+ "id": 5
93
+ },
94
+ "electricalStimulation": {
95
+ "type": "ElectricalStimulationConfig",
96
+ "id": 6
97
+ },
98
+ "opticalStimulation": {
99
+ "type": "OpticalStimulationConfig",
100
+ "id": 8
101
+ },
102
+ "spikeDetector": {
103
+ "type": "SpikeDetectorConfig",
104
+ "id": 9
105
+ },
106
+ "spectralFilter": {
107
+ "type": "SpectralFilterConfig",
108
+ "id": 10
109
+ },
110
+ "diskWriter": {
111
+ "type": "DiskWriterConfig",
112
+ "id": 11
113
+ },
114
+ "spikeSource": {
115
+ "type": "SpikeSourceConfig",
116
+ "id": 12
117
+ },
118
+ "spikeBinner": {
119
+ "type": "SpikeBinnerConfig",
120
+ "id": 13
121
+ },
122
+ "application": {
123
+ "type": "ApplicationNodeConfig",
124
+ "id": 14
125
+ }
126
+ },
127
+ "reserved": [
128
+ [
129
+ 3,
130
+ 3
131
+ ],
132
+ [
133
+ 4,
134
+ 4
135
+ ]
136
+ ]
137
+ },
138
+ "NodeStatus": {
139
+ "oneofs": {
140
+ "status": {
141
+ "oneof": [
142
+ "broadbandSource",
143
+ "electricalStimulation",
144
+ "application",
145
+ "opticalStimulation",
146
+ "diskWriter"
147
+ ]
148
+ }
149
+ },
150
+ "fields": {
151
+ "type": {
152
+ "type": "NodeType",
153
+ "id": 1
154
+ },
155
+ "id": {
156
+ "type": "uint32",
157
+ "id": 2
158
+ },
159
+ "broadbandSource": {
160
+ "type": "BroadbandSourceStatus",
161
+ "id": 4
162
+ },
163
+ "electricalStimulation": {
164
+ "type": "ElectricalStimulationStatus",
165
+ "id": 6
166
+ },
167
+ "application": {
168
+ "type": "ApplicationNodeStatus",
169
+ "id": 7
170
+ },
171
+ "opticalStimulation": {
172
+ "type": "OpticalStimulationStatus",
173
+ "id": 8
174
+ },
175
+ "diskWriter": {
176
+ "type": "DiskWriterStatus",
177
+ "id": 10
178
+ }
179
+ },
180
+ "reserved": [
181
+ [
182
+ 3,
183
+ 3
184
+ ],
185
+ [
186
+ 5,
187
+ 5
188
+ ]
189
+ ]
190
+ },
191
+ "NodeConnection": {
192
+ "fields": {
193
+ "srcNodeId": {
194
+ "type": "uint32",
195
+ "id": 1
196
+ },
197
+ "dstNodeId": {
198
+ "type": "uint32",
199
+ "id": 2
200
+ }
201
+ }
202
+ },
203
+ "BroadbandSourceConfig": {
204
+ "fields": {
205
+ "peripheralId": {
206
+ "type": "uint32",
207
+ "id": 1
208
+ },
209
+ "bitWidth": {
210
+ "type": "uint32",
211
+ "id": 2
212
+ },
213
+ "sampleRateHz": {
214
+ "type": "uint32",
215
+ "id": 3
216
+ },
217
+ "gain": {
218
+ "type": "float",
219
+ "id": 4
220
+ },
221
+ "signal": {
222
+ "type": "SignalConfig",
223
+ "id": 5
224
+ }
225
+ }
226
+ },
227
+ "BroadbandSourceStatus": {
228
+ "fields": {
229
+ "status": {
230
+ "type": "SignalStatus",
231
+ "id": 1
232
+ }
233
+ }
234
+ },
5
235
  "ElectrodeConfig": {
6
236
  "fields": {
7
237
  "channels": {
@@ -48,6 +278,12 @@
48
278
  }
49
279
  }
50
280
  },
281
+ "ChannelType": {
282
+ "values": {
283
+ "ELECTRODE": 0,
284
+ "GPIO": 1
285
+ }
286
+ },
51
287
  "Channel": {
52
288
  "fields": {
53
289
  "id": {
@@ -61,59 +297,58 @@
61
297
  "referenceId": {
62
298
  "type": "uint32",
63
299
  "id": 3
300
+ },
301
+ "type": {
302
+ "type": "ChannelType",
303
+ "id": 4
64
304
  }
65
305
  }
66
306
  },
67
- "SpectralFilterMethod": {
68
- "values": {
69
- "kSpectralFilterUnknown": 0,
70
- "kLowPass": 1,
71
- "kHighPass": 2,
72
- "kBandPass": 3,
73
- "kBandStop": 4
74
- }
75
- },
76
- "SpectralFilterConfig": {
307
+ "ChannelRange": {
77
308
  "fields": {
78
- "method": {
79
- "type": "SpectralFilterMethod",
309
+ "type": {
310
+ "type": "ChannelType",
80
311
  "id": 1
81
312
  },
82
- "lowCutoffHz": {
83
- "type": "float",
313
+ "count": {
314
+ "type": "uint32",
84
315
  "id": 2
85
316
  },
86
- "highCutoffHz": {
87
- "type": "float",
317
+ "channelIds": {
318
+ "rule": "repeated",
319
+ "type": "uint32",
88
320
  "id": 3
89
321
  }
90
322
  }
91
323
  },
92
- "SpikeSourceConfig": {
324
+ "ElectrodeStatus": {
93
325
  "fields": {
94
- "peripheralId": {
95
- "type": "uint32",
326
+ "lsbUV": {
327
+ "type": "float",
328
+ "id": 1
329
+ }
330
+ }
331
+ },
332
+ "PixelStatus": {
333
+ "fields": {}
334
+ },
335
+ "SignalStatus": {
336
+ "oneofs": {
337
+ "signalType": {
338
+ "oneof": [
339
+ "electrode",
340
+ "pixel"
341
+ ]
342
+ }
343
+ },
344
+ "fields": {
345
+ "electrode": {
346
+ "type": "ElectrodeStatus",
96
347
  "id": 1
97
348
  },
98
- "sampleRateHz": {
99
- "type": "uint32",
349
+ "pixel": {
350
+ "type": "PixelStatus",
100
351
  "id": 2
101
- },
102
- "spikeWindowMs": {
103
- "type": "float",
104
- "id": 3
105
- },
106
- "gain": {
107
- "type": "float",
108
- "id": 4
109
- },
110
- "thresholdUV": {
111
- "type": "float",
112
- "id": 5
113
- },
114
- "electrodes": {
115
- "type": "ElectrodeConfig",
116
- "id": 6
117
352
  }
118
353
  }
119
354
  },
@@ -150,13 +385,75 @@
150
385
  }
151
386
  }
152
387
  },
153
- "SpikeBinnerConfig": {
388
+ "OpticalStimulationConfig": {
154
389
  "fields": {
155
- "binSizeMs": {
390
+ "peripheralId": {
156
391
  "type": "uint32",
157
392
  "id": 1
158
- }
159
- }
393
+ },
394
+ "pixelMask": {
395
+ "rule": "repeated",
396
+ "type": "uint32",
397
+ "id": 2
398
+ },
399
+ "bitWidth": {
400
+ "type": "uint32",
401
+ "id": 3
402
+ },
403
+ "frameRate": {
404
+ "type": "uint32",
405
+ "id": 4
406
+ },
407
+ "gain": {
408
+ "type": "float",
409
+ "id": 5
410
+ },
411
+ "sendReceipts": {
412
+ "type": "bool",
413
+ "id": 6
414
+ }
415
+ }
416
+ },
417
+ "OpticalStimFrame": {
418
+ "fields": {
419
+ "frameId": {
420
+ "type": "uint64",
421
+ "id": 1
422
+ },
423
+ "sequenceNumber": {
424
+ "type": "uint64",
425
+ "id": 2
426
+ },
427
+ "timestampNs": {
428
+ "type": "uint64",
429
+ "id": 3
430
+ },
431
+ "rows": {
432
+ "type": "uint32",
433
+ "id": 4
434
+ },
435
+ "columns": {
436
+ "type": "uint32",
437
+ "id": 5
438
+ },
439
+ "intensity": {
440
+ "rule": "repeated",
441
+ "type": "float",
442
+ "id": 6
443
+ },
444
+ "durationUs": {
445
+ "type": "uint64",
446
+ "id": 7
447
+ }
448
+ }
449
+ },
450
+ "OpticalStimulationStatus": {
451
+ "fields": {
452
+ "framesWritten": {
453
+ "type": "uint64",
454
+ "id": 1
455
+ }
456
+ }
160
457
  },
161
458
  "TemplateMatcher": {
162
459
  "fields": {
@@ -199,38 +496,31 @@
199
496
  }
200
497
  }
201
498
  },
202
- "StreamInConfig": {
499
+ "SpectralFilterMethod": {
500
+ "values": {
501
+ "kSpectralFilterUnknown": 0,
502
+ "kLowPass": 1,
503
+ "kHighPass": 2,
504
+ "kBandPass": 3,
505
+ "kBandStop": 4
506
+ }
507
+ },
508
+ "SpectralFilterConfig": {
203
509
  "fields": {
204
- "dataType": {
205
- "type": "DataType",
510
+ "method": {
511
+ "type": "SpectralFilterMethod",
206
512
  "id": 1
207
513
  },
208
- "shape": {
209
- "rule": "repeated",
210
- "type": "uint32",
514
+ "lowCutoffHz": {
515
+ "type": "float",
211
516
  "id": 2
212
- }
213
- }
214
- },
215
- "StreamInStatus": {
216
- "fields": {
217
- "throughputMbps": {
517
+ },
518
+ "highCutoffHz": {
218
519
  "type": "float",
219
- "id": 1
520
+ "id": 3
220
521
  }
221
522
  }
222
523
  },
223
- "DataType": {
224
- "values": {
225
- "kDataTypeUnknown": 0,
226
- "kAny": 1,
227
- "kBroadband": 2,
228
- "kSpiketrain": 3,
229
- "kTimestamps": 4,
230
- "kImage": 5,
231
- "kWaveforms": 6
232
- }
233
- },
234
524
  "DiskWriterConfig": {
235
525
  "fields": {
236
526
  "filename": {
@@ -239,433 +529,257 @@
239
529
  }
240
530
  }
241
531
  },
242
- "UDPUnicastConfig": {
532
+ "DiskWriterStatus": {
243
533
  "fields": {
244
- "destinationAddress": {
534
+ "outputPath": {
245
535
  "type": "string",
246
536
  "id": 1
247
537
  },
248
- "destinationPort": {
249
- "type": "uint32",
538
+ "bytesWritten": {
539
+ "type": "uint64",
250
540
  "id": 2
251
- }
252
- }
253
- },
254
- "StreamOutConfig": {
255
- "oneofs": {
256
- "transport": {
257
- "oneof": [
258
- "udpUnicast"
259
- ]
260
- }
261
- },
262
- "fields": {
263
- "label": {
264
- "type": "string",
265
- "id": 1
266
541
  },
267
- "udpUnicast": {
268
- "type": "UDPUnicastConfig",
269
- "id": 2
270
- }
271
- }
272
- },
273
- "StreamOutStatus": {
274
- "fields": {
275
- "throughputMbps": {
276
- "type": "float",
277
- "id": 1
542
+ "isWriting": {
543
+ "type": "bool",
544
+ "id": 3
278
545
  },
279
- "failedSendCount": {
546
+ "availableDiskSpaceBytes": {
280
547
  "type": "uint64",
281
- "id": 2
282
- }
283
- }
284
- },
285
- "ElectrodeStatus": {
286
- "fields": {
287
- "lsbUV": {
288
- "type": "float",
289
- "id": 1
290
- }
291
- }
292
- },
293
- "PixelStatus": {
294
- "fields": {}
295
- },
296
- "SignalStatus": {
297
- "oneofs": {
298
- "signalType": {
299
- "oneof": [
300
- "electrode",
301
- "pixel"
302
- ]
303
- }
304
- },
305
- "fields": {
306
- "electrode": {
307
- "type": "ElectrodeStatus",
308
- "id": 1
548
+ "id": 4
309
549
  },
310
- "pixel": {
311
- "type": "PixelStatus",
312
- "id": 2
550
+ "currentBitrateMbps": {
551
+ "type": "float",
552
+ "id": 5
313
553
  }
314
554
  }
315
555
  },
316
- "BroadbandSourceConfig": {
556
+ "SpikeSourceConfig": {
317
557
  "fields": {
318
558
  "peripheralId": {
319
559
  "type": "uint32",
320
560
  "id": 1
321
561
  },
322
- "bitWidth": {
562
+ "sampleRateHz": {
323
563
  "type": "uint32",
324
564
  "id": 2
325
565
  },
326
- "sampleRateHz": {
327
- "type": "uint32",
566
+ "spikeWindowMs": {
567
+ "type": "float",
328
568
  "id": 3
329
569
  },
330
570
  "gain": {
331
571
  "type": "float",
332
572
  "id": 4
333
573
  },
334
- "signal": {
335
- "type": "SignalConfig",
574
+ "thresholdUV": {
575
+ "type": "float",
336
576
  "id": 5
577
+ },
578
+ "electrodes": {
579
+ "type": "ElectrodeConfig",
580
+ "id": 6
337
581
  }
338
582
  }
339
583
  },
340
- "BroadbandSourceStatus": {
584
+ "SpikeBinnerConfig": {
341
585
  "fields": {
342
- "status": {
343
- "type": "SignalStatus",
586
+ "binSizeMs": {
587
+ "type": "uint32",
344
588
  "id": 1
345
589
  }
346
590
  }
347
591
  },
348
- "OpticalStimulationConfig": {
592
+ "ApplicationNodeConfig": {
349
593
  "fields": {
350
- "peripheralId": {
351
- "type": "uint32",
594
+ "name": {
595
+ "type": "string",
352
596
  "id": 1
353
597
  },
354
- "pixelMask": {
355
- "rule": "repeated",
356
- "type": "uint32",
598
+ "parameters": {
599
+ "keyType": "string",
600
+ "type": "google.protobuf.Value",
357
601
  "id": 2
358
- },
359
- "bitWidth": {
360
- "type": "uint32",
361
- "id": 3
362
- },
363
- "frameRate": {
364
- "type": "uint32",
365
- "id": 4
366
- },
367
- "gain": {
368
- "type": "float",
369
- "id": 5
370
602
  }
371
603
  }
372
604
  },
373
- "Peripheral": {
605
+ "ApplicationNodeStatus": {
374
606
  "fields": {
375
607
  "name": {
376
608
  "type": "string",
377
609
  "id": 1
378
610
  },
379
- "vendor": {
380
- "type": "string",
611
+ "running": {
612
+ "type": "bool",
381
613
  "id": 2
382
614
  },
383
- "peripheralId": {
384
- "type": "uint32",
385
- "id": 3
386
- },
387
- "type": {
388
- "type": "Type",
389
- "id": 4
390
- },
391
- "address": {
615
+ "errorLogs": {
392
616
  "type": "string",
393
- "id": 5
394
- }
395
- },
396
- "nested": {
397
- "Type": {
398
- "values": {
399
- "kUnknown": 0,
400
- "kBroadbandSource": 1,
401
- "kElectricalStimulation": 2,
402
- "kOpticalStimulation": 3,
403
- "kSpikeSource": 4
404
- }
617
+ "id": 3
405
618
  }
406
619
  }
407
620
  },
408
- "DeviceInfo": {
621
+ "TimeSyncPacket": {
409
622
  "fields": {
410
- "name": {
411
- "type": "string",
623
+ "clientId": {
624
+ "type": "fixed32",
412
625
  "id": 1
413
626
  },
414
- "serial": {
415
- "type": "string",
627
+ "sequence": {
628
+ "type": "fixed32",
416
629
  "id": 2
417
630
  },
418
- "synapseVersion": {
419
- "type": "uint32",
631
+ "clientSendTimeNs": {
632
+ "type": "fixed64",
420
633
  "id": 3
421
634
  },
422
- "firmwareVersion": {
423
- "type": "uint32",
635
+ "serverReceiveTimeNs": {
636
+ "type": "fixed64",
424
637
  "id": 4
425
638
  },
426
- "status": {
427
- "type": "Status",
639
+ "serverSendTimeNs": {
640
+ "type": "fixed64",
428
641
  "id": 5
429
642
  },
430
- "peripherals": {
431
- "rule": "repeated",
432
- "type": "Peripheral",
643
+ "clientReceiveTimeNs": {
644
+ "type": "fixed64",
433
645
  "id": 6
434
- },
435
- "configuration": {
436
- "type": "DeviceConfiguration",
437
- "id": 7
438
- }
439
- }
440
- },
441
- "DeviceConfiguration": {
442
- "fields": {
443
- "nodes": {
444
- "rule": "repeated",
445
- "type": "NodeConfig",
446
- "id": 1
447
- },
448
- "connections": {
449
- "rule": "repeated",
450
- "type": "NodeConnection",
451
- "id": 2
452
646
  }
453
647
  }
454
648
  },
455
- "SynapseDevice": {
456
- "methods": {
457
- "Info": {
458
- "requestType": "google.protobuf.Empty",
459
- "responseType": "DeviceInfo"
460
- },
461
- "Configure": {
462
- "requestType": "DeviceConfiguration",
463
- "responseType": "Status"
464
- },
465
- "Start": {
466
- "requestType": "google.protobuf.Empty",
467
- "responseType": "Status"
468
- },
469
- "Stop": {
470
- "requestType": "google.protobuf.Empty",
471
- "responseType": "Status"
472
- },
473
- "Query": {
474
- "requestType": "QueryRequest",
475
- "responseType": "QueryResponse"
476
- },
477
- "StreamQuery": {
478
- "requestType": "StreamQueryRequest",
479
- "responseType": "StreamQueryResponse",
480
- "responseStream": true
481
- },
482
- "ListFiles": {
483
- "requestType": "google.protobuf.Empty",
484
- "responseType": "ListFilesResponse"
485
- },
486
- "WriteFile": {
487
- "requestType": "WriteFileRequest",
488
- "responseType": "WriteFileResponse"
489
- },
490
- "ReadFile": {
491
- "requestType": "ReadFileRequest",
492
- "responseType": "ReadFileResponse",
493
- "responseStream": true
494
- },
495
- "DeleteFile": {
496
- "requestType": "DeleteFileRequest",
497
- "responseType": "DeleteFileResponse"
498
- },
499
- "GetLogs": {
500
- "requestType": "LogQueryRequest",
501
- "responseType": "LogQueryResponse"
502
- },
503
- "TailLogs": {
504
- "requestType": "TailLogsRequest",
505
- "responseType": "LogEntry",
506
- "responseStream": true
507
- }
649
+ "TimeSource": {
650
+ "values": {
651
+ "TIME_SOURCE_UNKNOWN": 0,
652
+ "TIME_SOURCE_STEADY_CLOCK": 1,
653
+ "TIME_SOURCE_SAMPLE_COUNTER": 2
508
654
  }
509
655
  },
510
- "NodeType": {
656
+ "DataType": {
511
657
  "values": {
512
- "kNodeTypeUnknown": 0,
513
- "kStreamIn": 1,
514
- "kStreamOut": 2,
515
- "kBroadbandSource": 3,
516
- "kElectricalStimulation": 4,
517
- "kOpticalStimulation": 5,
518
- "kSpikeDetector": 6,
519
- "kSpikeSource": 7,
520
- "kSpectralFilter": 8,
521
- "kDiskWriter": 9,
522
- "kSpikeBinner": 10
658
+ "kDataTypeUnknown": 0,
659
+ "kAny": 1,
660
+ "kBroadband": 2,
661
+ "kSpiketrain": 3,
662
+ "kTimestamps": 4,
663
+ "kImage": 5,
664
+ "kWaveforms": 6
523
665
  }
524
666
  },
525
- "NodeConfig": {
526
- "oneofs": {
527
- "config": {
528
- "oneof": [
529
- "streamOut",
530
- "streamIn",
531
- "broadbandSource",
532
- "electricalStimulation",
533
- "opticalStimulation",
534
- "spikeDetector",
535
- "spectralFilter",
536
- "diskWriter",
537
- "spikeSource",
538
- "spikeBinner"
539
- ]
540
- }
541
- },
667
+ "Tensor": {
542
668
  "fields": {
543
- "type": {
544
- "type": "NodeType",
669
+ "timestampNs": {
670
+ "type": "uint64",
545
671
  "id": 1
546
672
  },
547
- "id": {
548
- "type": "uint32",
549
- "id": 2
550
- },
551
- "streamOut": {
552
- "type": "StreamOutConfig",
553
- "id": 3
554
- },
555
- "streamIn": {
556
- "type": "StreamInConfig",
557
- "id": 4
558
- },
559
- "broadbandSource": {
560
- "type": "BroadbandSourceConfig",
561
- "id": 5
562
- },
563
- "electricalStimulation": {
564
- "type": "ElectricalStimulationConfig",
565
- "id": 6
566
- },
567
- "opticalStimulation": {
568
- "type": "OpticalStimulationConfig",
569
- "id": 8
570
- },
571
- "spikeDetector": {
572
- "type": "SpikeDetectorConfig",
573
- "id": 9
673
+ "shape": {
674
+ "rule": "repeated",
675
+ "type": "int32",
676
+ "id": 2
574
677
  },
575
- "spectralFilter": {
576
- "type": "SpectralFilterConfig",
577
- "id": 10
678
+ "dtype": {
679
+ "type": "DType",
680
+ "id": 3
578
681
  },
579
- "diskWriter": {
580
- "type": "DiskWriterConfig",
581
- "id": 11
682
+ "endianness": {
683
+ "type": "Endianness",
684
+ "id": 4
582
685
  },
583
- "spikeSource": {
584
- "type": "SpikeSourceConfig",
585
- "id": 12
686
+ "data": {
687
+ "type": "bytes",
688
+ "id": 5
689
+ }
690
+ },
691
+ "nested": {
692
+ "DType": {
693
+ "values": {
694
+ "DT_INVALID": 0,
695
+ "DT_FLOAT": 1,
696
+ "DT_DOUBLE": 2,
697
+ "DT_UINT8": 3,
698
+ "DT_UINT16": 4,
699
+ "DT_UINT32": 5,
700
+ "DT_UINT64": 6,
701
+ "DT_INT8": 7,
702
+ "DT_INT16": 8,
703
+ "DT_INT32": 9,
704
+ "DT_INT64": 10,
705
+ "DT_BOOL": 11
706
+ }
586
707
  },
587
- "spikeBinner": {
588
- "type": "SpikeBinnerConfig",
589
- "id": 13
708
+ "Endianness": {
709
+ "values": {
710
+ "TENSOR_LITTLE_ENDIAN": 0,
711
+ "TENSOR_BIG_ENDIAN": 1
712
+ }
590
713
  }
591
714
  }
592
715
  },
593
- "NodeStatus": {
594
- "oneofs": {
595
- "status": {
596
- "oneof": [
597
- "streamOut",
598
- "broadbandSource",
599
- "streamIn",
600
- "electricalStimulation"
601
- ]
602
- }
603
- },
716
+ "BroadbandFrame": {
604
717
  "fields": {
605
- "type": {
606
- "type": "NodeType",
718
+ "timestampNs": {
719
+ "type": "uint64",
607
720
  "id": 1
608
721
  },
609
- "id": {
610
- "type": "uint32",
722
+ "sequenceNumber": {
723
+ "type": "uint64",
611
724
  "id": 2
612
725
  },
613
- "streamOut": {
614
- "type": "StreamOutStatus",
726
+ "frameData": {
727
+ "rule": "repeated",
728
+ "type": "sint32",
615
729
  "id": 3
616
730
  },
617
- "broadbandSource": {
618
- "type": "BroadbandSourceStatus",
731
+ "sampleRateHz": {
732
+ "type": "uint32",
619
733
  "id": 4
620
734
  },
621
- "streamIn": {
622
- "type": "StreamInStatus",
735
+ "channelRanges": {
736
+ "rule": "repeated",
737
+ "type": "ChannelRange",
623
738
  "id": 5
624
739
  },
625
- "electricalStimulation": {
626
- "type": "ElectricalStimulationStatus",
740
+ "unixTimestampNs": {
741
+ "type": "uint64",
627
742
  "id": 6
628
743
  }
629
744
  }
630
745
  },
631
- "NodeConnection": {
746
+ "Timeseries": {
632
747
  "fields": {
633
- "srcNodeId": {
748
+ "id": {
634
749
  "type": "uint32",
635
750
  "id": 1
636
751
  },
637
- "dstNodeId": {
638
- "type": "uint32",
752
+ "datapoints": {
753
+ "rule": "repeated",
754
+ "type": "Datapoint",
639
755
  "id": 2
640
756
  }
757
+ },
758
+ "nested": {
759
+ "Datapoint": {
760
+ "fields": {
761
+ "timestampNs": {
762
+ "type": "uint64",
763
+ "id": 1
764
+ },
765
+ "sample": {
766
+ "type": "sint32",
767
+ "id": 2
768
+ }
769
+ }
770
+ }
641
771
  }
642
772
  },
643
- "NodeSocket": {
773
+ "AnnotatedTensor": {
644
774
  "fields": {
645
- "nodeId": {
646
- "type": "uint32",
775
+ "tensor": {
776
+ "type": "Tensor",
647
777
  "id": 1
648
778
  },
649
- "bind": {
650
- "type": "string",
779
+ "metadata": {
780
+ "keyType": "string",
781
+ "type": "google.protobuf.Value",
651
782
  "id": 2
652
- },
653
- "dataType": {
654
- "type": "DataType",
655
- "id": 3
656
- },
657
- "type": {
658
- "type": "NodeType",
659
- "id": 4
660
- },
661
- "label": {
662
- "type": "string",
663
- "id": 5
664
- },
665
- "shape": {
666
- "rule": "repeated",
667
- "type": "uint32",
668
- "id": 6
669
783
  }
670
784
  }
671
785
  },
@@ -764,7 +878,9 @@
764
878
  "oneof": [
765
879
  "impedanceQuery",
766
880
  "sampleQuery",
767
- "selfTestQuery"
881
+ "selfTestQuery",
882
+ "listTapsQuery",
883
+ "getSettingsQuery"
768
884
  ]
769
885
  }
770
886
  },
@@ -784,6 +900,14 @@
784
900
  "selfTestQuery": {
785
901
  "type": "SelfTestQuery",
786
902
  "id": 4
903
+ },
904
+ "listTapsQuery": {
905
+ "type": "ListTapsQuery",
906
+ "id": 5
907
+ },
908
+ "getSettingsQuery": {
909
+ "type": "GetSettingsQuery",
910
+ "id": 6
787
911
  }
788
912
  },
789
913
  "nested": {
@@ -792,7 +916,9 @@
792
916
  "kNone": 0,
793
917
  "kImpedance": 1,
794
918
  "kSample": 2,
795
- "kSelfTest": 3
919
+ "kSelfTest": 3,
920
+ "kListTaps": 4,
921
+ "kGetSettings": 5
796
922
  }
797
923
  }
798
924
  }
@@ -810,7 +936,9 @@
810
936
  "response": {
811
937
  "oneof": [
812
938
  "impedanceResponse",
813
- "selfTestResponse"
939
+ "selfTestResponse",
940
+ "listTapsResponse",
941
+ "getSettingsResponse"
814
942
  ]
815
943
  }
816
944
  },
@@ -831,6 +959,14 @@
831
959
  "selfTestResponse": {
832
960
  "type": "SelfTestResponse",
833
961
  "id": 4
962
+ },
963
+ "listTapsResponse": {
964
+ "type": "ListTapsResponse",
965
+ "id": 5
966
+ },
967
+ "getSettingsResponse": {
968
+ "type": "GetSettingsResponse",
969
+ "id": 6
834
970
  }
835
971
  }
836
972
  },
@@ -842,114 +978,352 @@
842
978
  "selfTest"
843
979
  ]
844
980
  }
845
- },
981
+ },
982
+ "fields": {
983
+ "code": {
984
+ "type": "StatusCode",
985
+ "id": 1
986
+ },
987
+ "message": {
988
+ "type": "string",
989
+ "id": 2
990
+ },
991
+ "timestampNs": {
992
+ "type": "uint64",
993
+ "id": 3
994
+ },
995
+ "impedance": {
996
+ "type": "ImpedanceResponse",
997
+ "id": 4
998
+ },
999
+ "selfTest": {
1000
+ "type": "SelfTestResponse",
1001
+ "id": 5
1002
+ }
1003
+ }
1004
+ },
1005
+ "StatusCode": {
1006
+ "values": {
1007
+ "kOk": 0,
1008
+ "kUndefinedError": 1,
1009
+ "kInvalidConfiguration": 2,
1010
+ "kFailedPrecondition": 3,
1011
+ "kUnimplemented": 4,
1012
+ "kInternalError": 5,
1013
+ "kPermissionDenied": 6,
1014
+ "kQueryFailed": 7
1015
+ }
1016
+ },
1017
+ "DeviceState": {
1018
+ "values": {
1019
+ "kUnknown": 0,
1020
+ "kInitializing": 1,
1021
+ "kStopped": 2,
1022
+ "kRunning": 3,
1023
+ "kError": 4
1024
+ }
1025
+ },
1026
+ "DeviceStorage": {
1027
+ "fields": {
1028
+ "totalGb": {
1029
+ "type": "float",
1030
+ "id": 1
1031
+ },
1032
+ "usedGb": {
1033
+ "type": "float",
1034
+ "id": 2
1035
+ }
1036
+ }
1037
+ },
1038
+ "DevicePower": {
1039
+ "fields": {
1040
+ "batteryLevelPercent": {
1041
+ "type": "float",
1042
+ "id": 1
1043
+ },
1044
+ "isCharging": {
1045
+ "type": "bool",
1046
+ "id": 2
1047
+ }
1048
+ }
1049
+ },
1050
+ "SignalChainStatus": {
1051
+ "fields": {
1052
+ "nodes": {
1053
+ "rule": "repeated",
1054
+ "type": "NodeStatus",
1055
+ "id": 1
1056
+ }
1057
+ }
1058
+ },
1059
+ "Status": {
1060
+ "fields": {
1061
+ "message": {
1062
+ "type": "string",
1063
+ "id": 1
1064
+ },
1065
+ "code": {
1066
+ "type": "StatusCode",
1067
+ "id": 2
1068
+ },
1069
+ "state": {
1070
+ "type": "DeviceState",
1071
+ "id": 3
1072
+ },
1073
+ "power": {
1074
+ "type": "DevicePower",
1075
+ "id": 5
1076
+ },
1077
+ "storage": {
1078
+ "type": "DeviceStorage",
1079
+ "id": 6
1080
+ },
1081
+ "signalChain": {
1082
+ "type": "SignalChainStatus",
1083
+ "id": 7
1084
+ },
1085
+ "timeSyncPort": {
1086
+ "type": "uint32",
1087
+ "id": 8
1088
+ }
1089
+ },
1090
+ "reserved": [
1091
+ [
1092
+ 4,
1093
+ 4
1094
+ ]
1095
+ ]
1096
+ },
1097
+ "TapType": {
1098
+ "values": {
1099
+ "TAP_TYPE_UNSPECIFIED": 0,
1100
+ "TAP_TYPE_PRODUCER": 1,
1101
+ "TAP_TYPE_CONSUMER": 2
1102
+ }
1103
+ },
1104
+ "TapConnection": {
1105
+ "fields": {
1106
+ "name": {
1107
+ "type": "string",
1108
+ "id": 1
1109
+ },
1110
+ "endpoint": {
1111
+ "type": "string",
1112
+ "id": 2
1113
+ },
1114
+ "messageType": {
1115
+ "type": "string",
1116
+ "id": 3
1117
+ },
1118
+ "tapType": {
1119
+ "type": "TapType",
1120
+ "id": 4
1121
+ }
1122
+ }
1123
+ },
1124
+ "ListTapsQuery": {
1125
+ "fields": {}
1126
+ },
1127
+ "ListTapsResponse": {
1128
+ "fields": {
1129
+ "taps": {
1130
+ "rule": "repeated",
1131
+ "type": "TapConnection",
1132
+ "id": 1
1133
+ }
1134
+ }
1135
+ },
1136
+ "Peripheral": {
1137
+ "fields": {
1138
+ "name": {
1139
+ "type": "string",
1140
+ "id": 1
1141
+ },
1142
+ "vendor": {
1143
+ "type": "string",
1144
+ "id": 2
1145
+ },
1146
+ "peripheralId": {
1147
+ "type": "uint32",
1148
+ "id": 3
1149
+ },
1150
+ "type": {
1151
+ "type": "Type",
1152
+ "id": 4
1153
+ },
1154
+ "address": {
1155
+ "type": "string",
1156
+ "id": 5
1157
+ }
1158
+ },
1159
+ "nested": {
1160
+ "Type": {
1161
+ "values": {
1162
+ "kUnknown": 0,
1163
+ "kBroadbandSource": 1,
1164
+ "kElectricalStimulation": 2,
1165
+ "kOpticalStimulation": 3,
1166
+ "kSpikeSource": 4
1167
+ }
1168
+ }
1169
+ }
1170
+ },
1171
+ "DeviceInfo": {
846
1172
  "fields": {
847
- "code": {
848
- "type": "StatusCode",
1173
+ "name": {
1174
+ "type": "string",
849
1175
  "id": 1
850
1176
  },
851
- "message": {
1177
+ "serial": {
852
1178
  "type": "string",
853
1179
  "id": 2
854
1180
  },
855
- "timestampNs": {
856
- "type": "uint64",
1181
+ "synapseVersion": {
1182
+ "type": "uint32",
857
1183
  "id": 3
858
1184
  },
859
- "impedance": {
860
- "type": "ImpedanceResponse",
1185
+ "firmwareVersion": {
1186
+ "type": "uint32",
861
1187
  "id": 4
862
1188
  },
863
- "selfTest": {
864
- "type": "SelfTestResponse",
1189
+ "status": {
1190
+ "type": "Status",
865
1191
  "id": 5
1192
+ },
1193
+ "peripherals": {
1194
+ "rule": "repeated",
1195
+ "type": "Peripheral",
1196
+ "id": 6
1197
+ },
1198
+ "configuration": {
1199
+ "type": "DeviceConfiguration",
1200
+ "id": 7
866
1201
  }
867
1202
  }
868
1203
  },
869
- "StatusCode": {
870
- "values": {
871
- "kOk": 0,
872
- "kUndefinedError": 1,
873
- "kInvalidConfiguration": 2,
874
- "kFailedPrecondition": 3,
875
- "kUnimplemented": 4,
876
- "kInternalError": 5,
877
- "kPermissionDenied": 6,
878
- "kQueryFailed": 7
879
- }
880
- },
881
- "DeviceState": {
882
- "values": {
883
- "kUnknown": 0,
884
- "kInitializing": 1,
885
- "kStopped": 2,
886
- "kRunning": 3,
887
- "kError": 4
888
- }
889
- },
890
- "DeviceStorage": {
1204
+ "DeviceConfiguration": {
891
1205
  "fields": {
892
- "totalGb": {
893
- "type": "float",
1206
+ "nodes": {
1207
+ "rule": "repeated",
1208
+ "type": "NodeConfig",
894
1209
  "id": 1
895
1210
  },
896
- "usedGb": {
897
- "type": "float",
1211
+ "connections": {
1212
+ "rule": "repeated",
1213
+ "type": "NodeConnection",
898
1214
  "id": 2
899
1215
  }
900
1216
  }
901
1217
  },
902
- "DevicePower": {
1218
+ "DeviceSettings": {
903
1219
  "fields": {
904
- "batteryLevelPercent": {
905
- "type": "float",
1220
+ "name": {
1221
+ "type": "string",
906
1222
  "id": 1
907
1223
  },
908
- "isCharging": {
909
- "type": "bool",
1224
+ "timeSource": {
1225
+ "type": "TimeSource",
910
1226
  "id": 2
1227
+ },
1228
+ "fpgaClockFreqHz": {
1229
+ "type": "uint32",
1230
+ "id": 3
911
1231
  }
912
1232
  }
913
1233
  },
914
- "SignalChainStatus": {
1234
+ "GetSettingsQuery": {
1235
+ "fields": {}
1236
+ },
1237
+ "GetSettingsResponse": {
915
1238
  "fields": {
916
- "nodes": {
917
- "rule": "repeated",
918
- "type": "NodeStatus",
1239
+ "settings": {
1240
+ "type": "DeviceSettings",
919
1241
  "id": 1
920
1242
  }
921
1243
  }
922
1244
  },
923
- "Status": {
1245
+ "UpdateDeviceSettingsRequest": {
924
1246
  "fields": {
925
- "message": {
926
- "type": "string",
1247
+ "settings": {
1248
+ "type": "DeviceSettings",
1249
+ "id": 1
1250
+ }
1251
+ }
1252
+ },
1253
+ "UpdateDeviceSettingsResponse": {
1254
+ "fields": {
1255
+ "status": {
1256
+ "type": "Status",
927
1257
  "id": 1
928
1258
  },
929
- "code": {
930
- "type": "StatusCode",
1259
+ "updatedSettings": {
1260
+ "type": "DeviceSettings",
931
1261
  "id": 2
1262
+ }
1263
+ }
1264
+ },
1265
+ "SynapseDevice": {
1266
+ "methods": {
1267
+ "Info": {
1268
+ "requestType": "google.protobuf.Empty",
1269
+ "responseType": "DeviceInfo"
932
1270
  },
933
- "state": {
934
- "type": "DeviceState",
935
- "id": 3
1271
+ "Configure": {
1272
+ "requestType": "DeviceConfiguration",
1273
+ "responseType": "Status"
936
1274
  },
937
- "sockets": {
938
- "rule": "repeated",
939
- "type": "NodeSocket",
940
- "id": 4
1275
+ "Start": {
1276
+ "requestType": "google.protobuf.Empty",
1277
+ "responseType": "Status"
941
1278
  },
942
- "power": {
943
- "type": "DevicePower",
944
- "id": 5
1279
+ "Stop": {
1280
+ "requestType": "google.protobuf.Empty",
1281
+ "responseType": "Status"
945
1282
  },
946
- "storage": {
947
- "type": "DeviceStorage",
948
- "id": 6
1283
+ "Query": {
1284
+ "requestType": "QueryRequest",
1285
+ "responseType": "QueryResponse"
949
1286
  },
950
- "signalChain": {
951
- "type": "SignalChainStatus",
952
- "id": 7
1287
+ "StreamQuery": {
1288
+ "requestType": "StreamQueryRequest",
1289
+ "responseType": "StreamQueryResponse",
1290
+ "responseStream": true
1291
+ },
1292
+ "DeployApp": {
1293
+ "requestType": "AppPackageChunk",
1294
+ "requestStream": true,
1295
+ "responseType": "AppDeployResponse",
1296
+ "responseStream": true
1297
+ },
1298
+ "ListFiles": {
1299
+ "requestType": "google.protobuf.Empty",
1300
+ "responseType": "ListFilesResponse"
1301
+ },
1302
+ "WriteFile": {
1303
+ "requestType": "WriteFileRequest",
1304
+ "responseType": "WriteFileResponse"
1305
+ },
1306
+ "ReadFile": {
1307
+ "requestType": "ReadFileRequest",
1308
+ "responseType": "ReadFileResponse",
1309
+ "responseStream": true
1310
+ },
1311
+ "DeleteFile": {
1312
+ "requestType": "DeleteFileRequest",
1313
+ "responseType": "DeleteFileResponse"
1314
+ },
1315
+ "GetLogs": {
1316
+ "requestType": "LogQueryRequest",
1317
+ "responseType": "LogQueryResponse"
1318
+ },
1319
+ "TailLogs": {
1320
+ "requestType": "TailLogsRequest",
1321
+ "responseType": "LogEntry",
1322
+ "responseStream": true
1323
+ },
1324
+ "UpdateDeviceSettings": {
1325
+ "requestType": "UpdateDeviceSettingsRequest",
1326
+ "responseType": "UpdateDeviceSettingsResponse"
953
1327
  }
954
1328
  }
955
1329
  },
@@ -1126,6 +1500,87 @@
1126
1500
  "id": 1
1127
1501
  }
1128
1502
  }
1503
+ },
1504
+ "AppManifest": {
1505
+ "fields": {
1506
+ "name": {
1507
+ "type": "string",
1508
+ "id": 1
1509
+ },
1510
+ "configSchema": {
1511
+ "type": "google.protobuf.Struct",
1512
+ "id": 2
1513
+ },
1514
+ "deviceConfig": {
1515
+ "type": "DeviceConfiguration",
1516
+ "id": 3
1517
+ }
1518
+ }
1519
+ },
1520
+ "PackageMetadata": {
1521
+ "fields": {
1522
+ "name": {
1523
+ "type": "string",
1524
+ "id": 1
1525
+ },
1526
+ "version": {
1527
+ "type": "string",
1528
+ "id": 2
1529
+ },
1530
+ "size": {
1531
+ "type": "uint64",
1532
+ "id": 3
1533
+ },
1534
+ "sha256Sum": {
1535
+ "type": "string",
1536
+ "id": 4
1537
+ }
1538
+ }
1539
+ },
1540
+ "AppPackageChunk": {
1541
+ "oneofs": {
1542
+ "data": {
1543
+ "oneof": [
1544
+ "metadata",
1545
+ "fileChunk"
1546
+ ]
1547
+ }
1548
+ },
1549
+ "fields": {
1550
+ "metadata": {
1551
+ "type": "PackageMetadata",
1552
+ "id": 1
1553
+ },
1554
+ "fileChunk": {
1555
+ "type": "bytes",
1556
+ "id": 2
1557
+ }
1558
+ }
1559
+ },
1560
+ "AppDeployResponse": {
1561
+ "fields": {
1562
+ "status": {
1563
+ "type": "StatusCode",
1564
+ "id": 1
1565
+ },
1566
+ "message": {
1567
+ "type": "string",
1568
+ "id": 2
1569
+ }
1570
+ }
1571
+ },
1572
+ "AppPerformanceSummary": {
1573
+ "fields": {
1574
+ "timestampNs": {
1575
+ "type": "uint64",
1576
+ "id": 1
1577
+ },
1578
+ "functionProfiles": {
1579
+ "rule": "repeated",
1580
+ "type": "FunctionProfile",
1581
+ "id": 2
1582
+ }
1583
+ }
1129
1584
  }
1130
1585
  }
1131
1586
  },
@@ -1133,6 +1588,69 @@
1133
1588
  "nested": {
1134
1589
  "protobuf": {
1135
1590
  "nested": {
1591
+ "Struct": {
1592
+ "fields": {
1593
+ "fields": {
1594
+ "keyType": "string",
1595
+ "type": "Value",
1596
+ "id": 1
1597
+ }
1598
+ }
1599
+ },
1600
+ "Value": {
1601
+ "oneofs": {
1602
+ "kind": {
1603
+ "oneof": [
1604
+ "nullValue",
1605
+ "numberValue",
1606
+ "stringValue",
1607
+ "boolValue",
1608
+ "structValue",
1609
+ "listValue"
1610
+ ]
1611
+ }
1612
+ },
1613
+ "fields": {
1614
+ "nullValue": {
1615
+ "type": "NullValue",
1616
+ "id": 1
1617
+ },
1618
+ "numberValue": {
1619
+ "type": "double",
1620
+ "id": 2
1621
+ },
1622
+ "stringValue": {
1623
+ "type": "string",
1624
+ "id": 3
1625
+ },
1626
+ "boolValue": {
1627
+ "type": "bool",
1628
+ "id": 4
1629
+ },
1630
+ "structValue": {
1631
+ "type": "Struct",
1632
+ "id": 5
1633
+ },
1634
+ "listValue": {
1635
+ "type": "ListValue",
1636
+ "id": 6
1637
+ }
1638
+ }
1639
+ },
1640
+ "NullValue": {
1641
+ "values": {
1642
+ "NULL_VALUE": 0
1643
+ }
1644
+ },
1645
+ "ListValue": {
1646
+ "fields": {
1647
+ "values": {
1648
+ "rule": "repeated",
1649
+ "type": "Value",
1650
+ "id": 1
1651
+ }
1652
+ }
1653
+ },
1136
1654
  "Empty": {
1137
1655
  "fields": {}
1138
1656
  }