@zentodo/cli 0.1.1 → 0.1.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.
@@ -0,0 +1,4052 @@
1
+ [
2
+ {
3
+ "name": "zentodo.auth.login-password",
4
+ "domain": "auth",
5
+ "action": "login-password",
6
+ "description": "调用 /userController/loginXzbb 完成身份校验,返回用户信息与 usrKey。",
7
+ "http": {
8
+ "method": "POST",
9
+ "path": "/userController/loginXzbb"
10
+ },
11
+ "scopes": [
12
+ "read"
13
+ ],
14
+ "annotations": {
15
+ "readOnly": false,
16
+ "idempotent": true,
17
+ "destructive": false
18
+ },
19
+ "params": [
20
+ {
21
+ "name": "email",
22
+ "backendName": "usrEmail",
23
+ "type": "string",
24
+ "required": true,
25
+ "description": "账号邮箱。"
26
+ },
27
+ {
28
+ "name": "password",
29
+ "backendName": "usrPwd",
30
+ "type": "string",
31
+ "required": true,
32
+ "secret": true,
33
+ "description": "账号密码。"
34
+ }
35
+ ],
36
+ "output": {
37
+ "shape": "object"
38
+ }
39
+ },
40
+ {
41
+ "name": "zentodo.auth.login-email",
42
+ "domain": "auth",
43
+ "action": "login-email",
44
+ "description": "调用 /userController/emailLogin,只需邮箱,配合 email-code 命令先发验证码。返回 usrKey(Long)。",
45
+ "http": {
46
+ "method": "POST",
47
+ "path": "/userController/emailLogin"
48
+ },
49
+ "scopes": [
50
+ "read"
51
+ ],
52
+ "annotations": {
53
+ "readOnly": false,
54
+ "idempotent": true,
55
+ "destructive": false
56
+ },
57
+ "params": [
58
+ {
59
+ "name": "email",
60
+ "backendName": "usrEmail",
61
+ "type": "string",
62
+ "required": true,
63
+ "description": "账号邮箱。"
64
+ },
65
+ {
66
+ "name": "invite_code",
67
+ "backendName": "inviteCode",
68
+ "type": "string",
69
+ "description": "邀请码(可选)。"
70
+ },
71
+ {
72
+ "name": "password",
73
+ "backendName": "usrPwd",
74
+ "type": "string",
75
+ "default": "",
76
+ "sendEmpty": true,
77
+ "description": "密码(传空字符串即可)。"
78
+ }
79
+ ],
80
+ "output": {
81
+ "shape": "scalar"
82
+ }
83
+ },
84
+ {
85
+ "name": "zentodo.auth.email-code",
86
+ "domain": "auth",
87
+ "action": "email-code",
88
+ "description": "调用 /userController/sendAuthEmailCode 向指定邮箱发送验证码。",
89
+ "http": {
90
+ "method": "POST",
91
+ "path": "/userController/sendAuthEmailCode"
92
+ },
93
+ "scopes": [
94
+ "read"
95
+ ],
96
+ "annotations": {
97
+ "readOnly": false,
98
+ "idempotent": false,
99
+ "destructive": false
100
+ },
101
+ "params": [
102
+ {
103
+ "name": "email",
104
+ "backendName": "usrEmail",
105
+ "type": "string",
106
+ "required": true,
107
+ "description": "收件邮箱。"
108
+ }
109
+ ],
110
+ "output": {
111
+ "shape": "scalar"
112
+ }
113
+ },
114
+ {
115
+ "name": "zentodo.auth.register",
116
+ "domain": "auth",
117
+ "action": "register",
118
+ "description": "调用 /userController/regisiterApp;仅传入邮箱与密码,昵称后续再更新。",
119
+ "http": {
120
+ "method": "POST",
121
+ "path": "/userController/regisiterApp"
122
+ },
123
+ "scopes": [
124
+ "write"
125
+ ],
126
+ "annotations": {
127
+ "readOnly": false,
128
+ "idempotent": false,
129
+ "destructive": false
130
+ },
131
+ "params": [
132
+ {
133
+ "name": "email",
134
+ "backendName": "usrEmail",
135
+ "type": "string",
136
+ "required": true,
137
+ "description": "账号邮箱。"
138
+ },
139
+ {
140
+ "name": "password",
141
+ "backendName": "usrPwd",
142
+ "type": "string",
143
+ "required": true,
144
+ "secret": true,
145
+ "description": "账号密码。"
146
+ }
147
+ ],
148
+ "output": {
149
+ "shape": "object"
150
+ }
151
+ },
152
+ {
153
+ "name": "zentodo.auth.find-password",
154
+ "domain": "auth",
155
+ "action": "find-password",
156
+ "description": "调用 /userController/findPasswordByUsrEmail,服务器将发送找回邮件。",
157
+ "http": {
158
+ "method": "POST",
159
+ "path": "/userController/findPasswordByUsrEmail"
160
+ },
161
+ "scopes": [
162
+ "read"
163
+ ],
164
+ "annotations": {
165
+ "readOnly": false,
166
+ "idempotent": false,
167
+ "destructive": false
168
+ },
169
+ "params": [
170
+ {
171
+ "name": "email",
172
+ "backendName": "usrEmail",
173
+ "type": "string",
174
+ "required": true,
175
+ "description": "账号邮箱。"
176
+ }
177
+ ],
178
+ "output": {
179
+ "shape": "scalar"
180
+ }
181
+ },
182
+ {
183
+ "name": "zentodo.auth.change-password",
184
+ "domain": "auth",
185
+ "action": "change-password",
186
+ "description": "调用 /userController/updateUserWithoutPhoto,携带 usrPwd 与 syncFlag=U。",
187
+ "http": {
188
+ "method": "POST",
189
+ "path": "/userController/updateUserWithoutPhoto"
190
+ },
191
+ "scopes": [
192
+ "write"
193
+ ],
194
+ "annotations": {
195
+ "readOnly": false,
196
+ "idempotent": false,
197
+ "destructive": false
198
+ },
199
+ "params": [
200
+ {
201
+ "name": "user_key",
202
+ "backendName": "usrKey",
203
+ "type": "integer",
204
+ "required": true,
205
+ "description": "目标 usrKey。"
206
+ },
207
+ {
208
+ "name": "password",
209
+ "backendName": "usrPwd",
210
+ "type": "string",
211
+ "required": true,
212
+ "secret": true,
213
+ "description": "新密码。"
214
+ },
215
+ {
216
+ "name": "sync_flag",
217
+ "backendName": "syncFlag",
218
+ "type": "string",
219
+ "default": "U",
220
+ "description": "同步标记,默认 U。"
221
+ }
222
+ ],
223
+ "output": {
224
+ "shape": "object"
225
+ }
226
+ },
227
+ {
228
+ "name": "zentodo.auth.delete-account",
229
+ "domain": "auth",
230
+ "action": "delete-account",
231
+ "description": "调用 /userController/deleteUsrByUsrKey。属于破坏性操作,必须携带 --yes。",
232
+ "http": {
233
+ "method": "POST",
234
+ "path": "/userController/deleteUsrByUsrKey"
235
+ },
236
+ "scopes": [
237
+ "destructive",
238
+ "admin"
239
+ ],
240
+ "annotations": {
241
+ "readOnly": false,
242
+ "idempotent": false,
243
+ "destructive": true
244
+ },
245
+ "params": [
246
+ {
247
+ "name": "user_key",
248
+ "backendName": "usrKey",
249
+ "type": "integer",
250
+ "required": true,
251
+ "description": "目标 usrKey。"
252
+ }
253
+ ],
254
+ "output": {
255
+ "shape": "object"
256
+ }
257
+ },
258
+ {
259
+ "name": "zentodo.auth.email-exists",
260
+ "domain": "auth",
261
+ "action": "email-exists",
262
+ "description": "调用 /userController/isEmailExist。",
263
+ "http": {
264
+ "method": "POST",
265
+ "path": "/userController/isEmailExist"
266
+ },
267
+ "scopes": [
268
+ "read"
269
+ ],
270
+ "annotations": {
271
+ "readOnly": true,
272
+ "idempotent": true,
273
+ "destructive": false
274
+ },
275
+ "params": [
276
+ {
277
+ "name": "email",
278
+ "backendName": "usrEmail",
279
+ "type": "string",
280
+ "required": true,
281
+ "description": "待检查的邮箱。"
282
+ }
283
+ ],
284
+ "output": {
285
+ "shape": "scalar"
286
+ }
287
+ },
288
+ {
289
+ "name": "zentodo.auth.phone-exists",
290
+ "domain": "auth",
291
+ "action": "phone-exists",
292
+ "description": "调用 /userController/isPhoneExist。",
293
+ "http": {
294
+ "method": "POST",
295
+ "path": "/userController/isPhoneExist"
296
+ },
297
+ "scopes": [
298
+ "read"
299
+ ],
300
+ "annotations": {
301
+ "readOnly": true,
302
+ "idempotent": true,
303
+ "destructive": false
304
+ },
305
+ "params": [
306
+ {
307
+ "name": "phone",
308
+ "backendName": "usrPhone",
309
+ "type": "string",
310
+ "required": true,
311
+ "description": "待检查的手机号。"
312
+ }
313
+ ],
314
+ "output": {
315
+ "shape": "scalar"
316
+ }
317
+ },
318
+ {
319
+ "name": "zentodo.user.info",
320
+ "domain": "user",
321
+ "action": "info",
322
+ "description": "调用 /userController/getUserInfoByUsrKey。",
323
+ "http": {
324
+ "method": "POST",
325
+ "path": "/userController/getUserInfoByUsrKey"
326
+ },
327
+ "scopes": [
328
+ "read"
329
+ ],
330
+ "annotations": {
331
+ "readOnly": true,
332
+ "idempotent": true,
333
+ "destructive": false
334
+ },
335
+ "params": [],
336
+ "output": {
337
+ "shape": "object"
338
+ }
339
+ },
340
+ {
341
+ "name": "zentodo.user.update",
342
+ "domain": "user",
343
+ "action": "update",
344
+ "description": "调用 /userController/updateUserWithoutPhoto。只会上传显式传入的字段,未传字段不会覆盖为空。",
345
+ "http": {
346
+ "method": "POST",
347
+ "path": "/userController/updateUserWithoutPhoto"
348
+ },
349
+ "scopes": [
350
+ "write"
351
+ ],
352
+ "annotations": {
353
+ "readOnly": false,
354
+ "idempotent": false,
355
+ "destructive": false
356
+ },
357
+ "params": [
358
+ {
359
+ "name": "nickname",
360
+ "backendName": "usrNickName",
361
+ "type": "string",
362
+ "description": "昵称。"
363
+ },
364
+ {
365
+ "name": "phone",
366
+ "backendName": "usrPhone",
367
+ "type": "string",
368
+ "description": "手机号。"
369
+ },
370
+ {
371
+ "name": "gender",
372
+ "backendName": "usrGender",
373
+ "type": "string",
374
+ "description": "性别。"
375
+ },
376
+ {
377
+ "name": "birthday",
378
+ "backendName": "usrBirthday",
379
+ "type": "date",
380
+ "transform": "isoToBackendDate",
381
+ "description": "生日(ISO 日期)。"
382
+ },
383
+ {
384
+ "name": "signature",
385
+ "backendName": "usrSignature",
386
+ "type": "string",
387
+ "description": "个性签名。"
388
+ }
389
+ ],
390
+ "output": {
391
+ "shape": "object"
392
+ }
393
+ },
394
+ {
395
+ "name": "zentodo.user.avatar-get",
396
+ "domain": "user",
397
+ "action": "avatar-get",
398
+ "description": "调用 /userController/getUserAvatarByUsrKey。",
399
+ "http": {
400
+ "method": "POST",
401
+ "path": "/userController/getUserAvatarByUsrKey"
402
+ },
403
+ "scopes": [
404
+ "read"
405
+ ],
406
+ "annotations": {
407
+ "readOnly": true,
408
+ "idempotent": true,
409
+ "destructive": false
410
+ },
411
+ "params": [],
412
+ "output": {
413
+ "shape": "scalar"
414
+ }
415
+ },
416
+ {
417
+ "name": "zentodo.user.invite-code",
418
+ "domain": "user",
419
+ "action": "invite-code",
420
+ "description": "调用 /userController/getInviteCodeByUsrKey。",
421
+ "http": {
422
+ "method": "POST",
423
+ "path": "/userController/getInviteCodeByUsrKey"
424
+ },
425
+ "scopes": [
426
+ "read"
427
+ ],
428
+ "annotations": {
429
+ "readOnly": true,
430
+ "idempotent": true,
431
+ "destructive": false
432
+ },
433
+ "params": [],
434
+ "output": {
435
+ "shape": "scalar"
436
+ }
437
+ },
438
+ {
439
+ "name": "zentodo.user.reward-coin-get",
440
+ "domain": "user",
441
+ "action": "reward-coin-get",
442
+ "description": "调用 /userController/getRewardCoinByUsrKey。",
443
+ "http": {
444
+ "method": "POST",
445
+ "path": "/userController/getRewardCoinByUsrKey"
446
+ },
447
+ "scopes": [
448
+ "read"
449
+ ],
450
+ "annotations": {
451
+ "readOnly": true,
452
+ "idempotent": true,
453
+ "destructive": false
454
+ },
455
+ "params": [],
456
+ "output": {
457
+ "shape": "scalar"
458
+ }
459
+ },
460
+ {
461
+ "name": "zentodo.user.reward-coin-set",
462
+ "domain": "user",
463
+ "action": "reward-coin-set",
464
+ "description": "调用 /userController/setRewardCoinByUsrKey。",
465
+ "http": {
466
+ "method": "POST",
467
+ "path": "/userController/setRewardCoinByUsrKey"
468
+ },
469
+ "scopes": [
470
+ "write",
471
+ "destructive"
472
+ ],
473
+ "annotations": {
474
+ "readOnly": false,
475
+ "idempotent": false,
476
+ "destructive": true
477
+ },
478
+ "params": [
479
+ {
480
+ "name": "reward_coin",
481
+ "backendName": "rewardCoin",
482
+ "type": "integer",
483
+ "required": true,
484
+ "description": "新的余额值。"
485
+ }
486
+ ],
487
+ "output": {
488
+ "shape": "scalar"
489
+ }
490
+ },
491
+ {
492
+ "name": "zentodo.user.vip-set",
493
+ "domain": "user",
494
+ "action": "vip-set",
495
+ "description": "调用 /userController/setVipEndDate。",
496
+ "http": {
497
+ "method": "POST",
498
+ "path": "/userController/setVipEndDate"
499
+ },
500
+ "scopes": [
501
+ "write",
502
+ "admin"
503
+ ],
504
+ "annotations": {
505
+ "readOnly": false,
506
+ "idempotent": false,
507
+ "destructive": false
508
+ },
509
+ "params": [
510
+ {
511
+ "name": "vip_end_date",
512
+ "backendName": "vipEndDate",
513
+ "type": "date",
514
+ "transform": "isoToBackendDate",
515
+ "required": true,
516
+ "description": "VIP 到期日(ISO 日期)。"
517
+ }
518
+ ],
519
+ "output": {
520
+ "shape": "scalar"
521
+ }
522
+ },
523
+ {
524
+ "name": "zentodo.user.restore-default-label",
525
+ "domain": "user",
526
+ "action": "restore-default-label",
527
+ "description": "调用 /userController/restoreDefaultLabel。",
528
+ "http": {
529
+ "method": "POST",
530
+ "path": "/userController/restoreDefaultLabel"
531
+ },
532
+ "scopes": [
533
+ "destructive",
534
+ "write"
535
+ ],
536
+ "annotations": {
537
+ "readOnly": false,
538
+ "idempotent": false,
539
+ "destructive": true
540
+ },
541
+ "params": [],
542
+ "output": {
543
+ "shape": "object"
544
+ }
545
+ },
546
+ {
547
+ "name": "zentodo.task.add",
548
+ "domain": "task",
549
+ "action": "add",
550
+ "description": "调用 /taskController/insertTask,使用 FormData 提交。",
551
+ "http": {
552
+ "method": "POST",
553
+ "path": "/taskController/insertTask"
554
+ },
555
+ "scopes": [
556
+ "write"
557
+ ],
558
+ "annotations": {
559
+ "readOnly": false,
560
+ "idempotent": false,
561
+ "destructive": false
562
+ },
563
+ "params": [
564
+ {
565
+ "name": "title",
566
+ "backendName": "taskTitle",
567
+ "type": "string",
568
+ "required": true,
569
+ "description": "任务标题。"
570
+ },
571
+ {
572
+ "name": "desc",
573
+ "backendName": "taskDescription",
574
+ "type": "string",
575
+ "description": "任务描述。"
576
+ },
577
+ {
578
+ "name": "due",
579
+ "backendName": "taskCreateTime",
580
+ "type": "datetime",
581
+ "transform": "isoToBackendDateTime",
582
+ "description": "计划时间 / 截止时间(ISO)。"
583
+ },
584
+ {
585
+ "name": "priority",
586
+ "backendName": "taskPriority",
587
+ "type": "integer",
588
+ "description": "优先级 0-4。"
589
+ },
590
+ {
591
+ "name": "project_key",
592
+ "backendName": "taskProjectKey",
593
+ "type": "integer",
594
+ "description": "所属项目 projectKey。"
595
+ },
596
+ {
597
+ "name": "scene_key",
598
+ "backendName": "taskSceneKey",
599
+ "type": "integer",
600
+ "description": "所属场景 sceneKey。"
601
+ },
602
+ {
603
+ "name": "labels",
604
+ "backendName": "taskLabels",
605
+ "type": "array",
606
+ "itemType": "string",
607
+ "transform": "arrayToCsv",
608
+ "description": "标签(自动拼接为 CSV)。"
609
+ },
610
+ {
611
+ "name": "mit",
612
+ "backendName": "isMIT",
613
+ "type": "boolean",
614
+ "transform": "booleanToString",
615
+ "description": "是否标记为 MIT(今日最重要)。"
616
+ },
617
+ {
618
+ "name": "reminder",
619
+ "backendName": "taskReminderTime",
620
+ "type": "datetime",
621
+ "transform": "isoToBackendDateTime",
622
+ "description": "提醒时间(ISO)。"
623
+ },
624
+ {
625
+ "name": "sub_of",
626
+ "backendName": "taskParentKey",
627
+ "type": "integer",
628
+ "description": "父任务 taskKey(子任务用)。"
629
+ },
630
+ {
631
+ "name": "quadrant",
632
+ "backendName": "task4time",
633
+ "type": "integer",
634
+ "description": "时间四象限 0-3。"
635
+ }
636
+ ],
637
+ "output": {
638
+ "shape": "object"
639
+ }
640
+ },
641
+ {
642
+ "name": "zentodo.task.update",
643
+ "domain": "task",
644
+ "action": "update",
645
+ "description": "调用 /taskController/updateTask。未传入的字段不会被写入 FormData,避免把现有列置空。",
646
+ "http": {
647
+ "method": "POST",
648
+ "path": "/taskController/updateTask"
649
+ },
650
+ "scopes": [
651
+ "write"
652
+ ],
653
+ "annotations": {
654
+ "readOnly": false,
655
+ "idempotent": false,
656
+ "destructive": false
657
+ },
658
+ "params": [
659
+ {
660
+ "name": "task_key",
661
+ "backendName": "taskKey",
662
+ "type": "integer",
663
+ "required": true,
664
+ "description": "任务 taskKey。"
665
+ },
666
+ {
667
+ "name": "title",
668
+ "backendName": "taskTitle",
669
+ "type": "string",
670
+ "description": "新标题。"
671
+ },
672
+ {
673
+ "name": "desc",
674
+ "backendName": "taskDescription",
675
+ "type": "string",
676
+ "description": "新描述。"
677
+ },
678
+ {
679
+ "name": "due",
680
+ "backendName": "taskCreateTime",
681
+ "type": "datetime",
682
+ "transform": "isoToBackendDateTime",
683
+ "description": "新计划时间(ISO)。"
684
+ },
685
+ {
686
+ "name": "priority",
687
+ "backendName": "taskPriority",
688
+ "type": "integer",
689
+ "description": "新优先级。"
690
+ },
691
+ {
692
+ "name": "project_key",
693
+ "backendName": "taskProjectKey",
694
+ "type": "integer",
695
+ "description": "迁移到的 projectKey。"
696
+ },
697
+ {
698
+ "name": "scene_key",
699
+ "backendName": "taskSceneKey",
700
+ "type": "integer",
701
+ "description": "迁移到的 sceneKey。"
702
+ },
703
+ {
704
+ "name": "labels",
705
+ "backendName": "taskLabels",
706
+ "type": "array",
707
+ "itemType": "string",
708
+ "transform": "arrayToCsv",
709
+ "description": "标签(CSV)。"
710
+ },
711
+ {
712
+ "name": "reminder",
713
+ "backendName": "taskReminderTime",
714
+ "type": "datetime",
715
+ "transform": "isoToBackendDateTime",
716
+ "description": "新提醒时间(ISO)。"
717
+ },
718
+ {
719
+ "name": "quadrant",
720
+ "backendName": "task4time",
721
+ "type": "integer",
722
+ "description": "时间四象限。"
723
+ },
724
+ {
725
+ "name": "sync_flag",
726
+ "backendName": "syncFlag",
727
+ "type": "string",
728
+ "default": "M",
729
+ "description": "同步标记,默认 M。"
730
+ }
731
+ ],
732
+ "output": {
733
+ "shape": "object"
734
+ }
735
+ },
736
+ {
737
+ "name": "zentodo.task.delete",
738
+ "domain": "task",
739
+ "action": "delete",
740
+ "description": "调用 /taskController/updateTask,自动注入 syncFlag=D。",
741
+ "http": {
742
+ "method": "POST",
743
+ "path": "/taskController/updateTask",
744
+ "pragmas": [
745
+ "softDelete"
746
+ ]
747
+ },
748
+ "scopes": [
749
+ "destructive",
750
+ "write"
751
+ ],
752
+ "annotations": {
753
+ "readOnly": false,
754
+ "idempotent": false,
755
+ "destructive": true
756
+ },
757
+ "params": [
758
+ {
759
+ "name": "task_key",
760
+ "backendName": "taskKey",
761
+ "type": "integer",
762
+ "required": true,
763
+ "description": "任务 taskKey。"
764
+ }
765
+ ],
766
+ "output": {
767
+ "shape": "object"
768
+ }
769
+ },
770
+ {
771
+ "name": "zentodo.task.complete",
772
+ "domain": "task",
773
+ "action": "complete",
774
+ "description": "调用 /taskController/updateTask,自动注入 taskState=0 与今日的 taskCompletedTime。",
775
+ "http": {
776
+ "method": "POST",
777
+ "path": "/taskController/updateTask",
778
+ "pragmas": [
779
+ "completeTask"
780
+ ]
781
+ },
782
+ "scopes": [
783
+ "write"
784
+ ],
785
+ "annotations": {
786
+ "readOnly": false,
787
+ "idempotent": false,
788
+ "destructive": false
789
+ },
790
+ "params": [
791
+ {
792
+ "name": "task_key",
793
+ "backendName": "taskKey",
794
+ "type": "integer",
795
+ "required": true,
796
+ "description": "任务 taskKey。"
797
+ }
798
+ ],
799
+ "output": {
800
+ "shape": "object"
801
+ }
802
+ },
803
+ {
804
+ "name": "zentodo.task.uncomplete",
805
+ "domain": "task",
806
+ "action": "uncomplete",
807
+ "description": "调用 /taskController/updateTask,把 taskState 还原为 1 并清空完成时间。",
808
+ "http": {
809
+ "method": "POST",
810
+ "path": "/taskController/updateTask"
811
+ },
812
+ "scopes": [
813
+ "write"
814
+ ],
815
+ "annotations": {
816
+ "readOnly": false,
817
+ "idempotent": false,
818
+ "destructive": false
819
+ },
820
+ "params": [
821
+ {
822
+ "name": "task_key",
823
+ "backendName": "taskKey",
824
+ "type": "integer",
825
+ "required": true,
826
+ "description": "任务 taskKey。"
827
+ },
828
+ {
829
+ "name": "task_state",
830
+ "backendName": "taskState",
831
+ "type": "integer",
832
+ "default": 1,
833
+ "description": "开放态(一般为 1)。"
834
+ },
835
+ {
836
+ "name": "task_completed_time",
837
+ "backendName": "taskCompletedTime",
838
+ "type": "string",
839
+ "default": "",
840
+ "sendEmpty": true,
841
+ "description": "清空完成时间。"
842
+ }
843
+ ],
844
+ "output": {
845
+ "shape": "object"
846
+ }
847
+ },
848
+ {
849
+ "name": "zentodo.task.mit",
850
+ "domain": "task",
851
+ "action": "mit",
852
+ "description": "调用 /taskController/updateTask,注入 isMIT 与 syncFlag=M。",
853
+ "http": {
854
+ "method": "POST",
855
+ "path": "/taskController/updateTask",
856
+ "pragmas": [
857
+ "setMit"
858
+ ]
859
+ },
860
+ "scopes": [
861
+ "write"
862
+ ],
863
+ "annotations": {
864
+ "readOnly": false,
865
+ "idempotent": false,
866
+ "destructive": false
867
+ },
868
+ "params": [
869
+ {
870
+ "name": "task_key",
871
+ "backendName": "taskKey",
872
+ "type": "integer",
873
+ "required": true,
874
+ "description": "任务 taskKey。"
875
+ },
876
+ {
877
+ "name": "is_mit",
878
+ "type": "boolean",
879
+ "required": true,
880
+ "description": "是否为 MIT。"
881
+ }
882
+ ],
883
+ "output": {
884
+ "shape": "object"
885
+ }
886
+ },
887
+ {
888
+ "name": "zentodo.task.quadrant",
889
+ "domain": "task",
890
+ "action": "quadrant",
891
+ "description": "调用 /taskController/updateTask,注入 task4time 与 syncFlag=M。",
892
+ "http": {
893
+ "method": "POST",
894
+ "path": "/taskController/updateTask",
895
+ "pragmas": [
896
+ "setQuadrant"
897
+ ]
898
+ },
899
+ "scopes": [
900
+ "write"
901
+ ],
902
+ "annotations": {
903
+ "readOnly": false,
904
+ "idempotent": false,
905
+ "destructive": false
906
+ },
907
+ "params": [
908
+ {
909
+ "name": "task_key",
910
+ "backendName": "taskKey",
911
+ "type": "integer",
912
+ "required": true,
913
+ "description": "任务 taskKey。"
914
+ },
915
+ {
916
+ "name": "quadrant",
917
+ "type": "integer",
918
+ "required": true,
919
+ "description": "象限 0..3。"
920
+ }
921
+ ],
922
+ "output": {
923
+ "shape": "object"
924
+ }
925
+ },
926
+ {
927
+ "name": "zentodo.task.completed-today",
928
+ "domain": "task",
929
+ "action": "completed-today",
930
+ "description": "调用 /taskController/getCompletedTasks。过滤条件:syncFlag != D、taskState = 0、taskCompletedTime = today。",
931
+ "http": {
932
+ "method": "POST",
933
+ "path": "/taskController/getCompletedTasks"
934
+ },
935
+ "scopes": [
936
+ "read"
937
+ ],
938
+ "annotations": {
939
+ "readOnly": true,
940
+ "idempotent": true,
941
+ "destructive": false
942
+ },
943
+ "params": [
944
+ {
945
+ "name": "is_templete",
946
+ "backendName": "isTemplete",
947
+ "type": "boolean",
948
+ "default": false,
949
+ "transform": "booleanToString",
950
+ "description": "排除模板。"
951
+ },
952
+ {
953
+ "name": "sync_flag",
954
+ "backendName": "syncFlag",
955
+ "type": "string",
956
+ "default": "!=D",
957
+ "description": "同步标记过滤。"
958
+ },
959
+ {
960
+ "name": "task_state",
961
+ "backendName": "taskState",
962
+ "type": "string",
963
+ "default": "=0",
964
+ "description": "已完成。"
965
+ },
966
+ {
967
+ "name": "task_completed_time",
968
+ "backendName": "taskCompletedTime",
969
+ "type": "string",
970
+ "default": "=today",
971
+ "description": "完成时间=今日。"
972
+ },
973
+ {
974
+ "name": "task_create_time_not_null",
975
+ "backendName": "taskCreateTimeNotNull",
976
+ "type": "boolean",
977
+ "default": true,
978
+ "transform": "booleanToString",
979
+ "description": "要求 createTime 非空。"
980
+ }
981
+ ],
982
+ "output": {
983
+ "shape": "array"
984
+ }
985
+ },
986
+ {
987
+ "name": "zentodo.task.mit-list",
988
+ "domain": "task",
989
+ "action": "mit-list",
990
+ "description": "调用 /taskController/getMitTasks。过滤条件与 PC 端 loadMitHeaderDatas() 一致。",
991
+ "http": {
992
+ "method": "POST",
993
+ "path": "/taskController/getMitTasks"
994
+ },
995
+ "scopes": [
996
+ "read"
997
+ ],
998
+ "annotations": {
999
+ "readOnly": true,
1000
+ "idempotent": true,
1001
+ "destructive": false
1002
+ },
1003
+ "params": [
1004
+ {
1005
+ "name": "sync_flag",
1006
+ "backendName": "syncFlag",
1007
+ "type": "string",
1008
+ "default": "!=D",
1009
+ "description": "同步标记过滤。"
1010
+ },
1011
+ {
1012
+ "name": "is_templete",
1013
+ "backendName": "isTemplete",
1014
+ "type": "boolean",
1015
+ "default": false,
1016
+ "transform": "booleanToString",
1017
+ "description": "排除模板。"
1018
+ },
1019
+ {
1020
+ "name": "task_state",
1021
+ "backendName": "taskState",
1022
+ "type": "string",
1023
+ "default": "!=0",
1024
+ "description": "未完成。"
1025
+ },
1026
+ {
1027
+ "name": "task_create_time_not_null",
1028
+ "backendName": "taskCreateTimeNotNull",
1029
+ "type": "boolean",
1030
+ "default": true,
1031
+ "transform": "booleanToString",
1032
+ "description": "要求 createTime 非空。"
1033
+ },
1034
+ {
1035
+ "name": "task_create_time",
1036
+ "backendName": "taskCreateTime",
1037
+ "type": "string",
1038
+ "default": "<=today",
1039
+ "description": "到今日为止。"
1040
+ },
1041
+ {
1042
+ "name": "is_mit",
1043
+ "backendName": "isMIT",
1044
+ "type": "boolean",
1045
+ "default": true,
1046
+ "transform": "booleanToString",
1047
+ "description": "MIT 过滤。"
1048
+ }
1049
+ ],
1050
+ "output": {
1051
+ "shape": "array"
1052
+ }
1053
+ },
1054
+ {
1055
+ "name": "zentodo.task.calendar",
1056
+ "domain": "task",
1057
+ "action": "calendar",
1058
+ "description": "调用 /taskController/getCalendarTaskByDate。过滤与安卓端一致(syncFlag!=D、taskState!=0、isTemplete=false、taskStartItem!=FT、taskStartItem!=垃圾箱)。",
1059
+ "http": {
1060
+ "method": "POST",
1061
+ "path": "/taskController/getCalendarTaskByDate"
1062
+ },
1063
+ "scopes": [
1064
+ "read"
1065
+ ],
1066
+ "annotations": {
1067
+ "readOnly": true,
1068
+ "idempotent": true,
1069
+ "destructive": false
1070
+ },
1071
+ "params": [
1072
+ {
1073
+ "name": "start_date",
1074
+ "backendName": "startDate",
1075
+ "type": "date",
1076
+ "transform": "isoToBackendDate",
1077
+ "required": true,
1078
+ "description": "范围起始(ISO 日期)。"
1079
+ },
1080
+ {
1081
+ "name": "end_date",
1082
+ "backendName": "endDate",
1083
+ "type": "date",
1084
+ "transform": "isoToBackendDate",
1085
+ "required": true,
1086
+ "description": "范围截止(ISO 日期)。"
1087
+ },
1088
+ {
1089
+ "name": "sync_flag",
1090
+ "backendName": "syncFlag",
1091
+ "type": "string",
1092
+ "default": "!=D",
1093
+ "description": "同步标记过滤。"
1094
+ },
1095
+ {
1096
+ "name": "task_state",
1097
+ "backendName": "taskState",
1098
+ "type": "string",
1099
+ "default": "!=0",
1100
+ "description": "未完成。"
1101
+ },
1102
+ {
1103
+ "name": "is_templete",
1104
+ "backendName": "isTemplete",
1105
+ "type": "boolean",
1106
+ "default": false,
1107
+ "transform": "booleanToString",
1108
+ "description": "排除模板。"
1109
+ },
1110
+ {
1111
+ "name": "task_start_item_not_1",
1112
+ "backendName": "taskStartItemNot1",
1113
+ "type": "string",
1114
+ "default": "FT",
1115
+ "description": "排除 FT 项。"
1116
+ },
1117
+ {
1118
+ "name": "task_start_item_not_2",
1119
+ "backendName": "taskStartItemNot2",
1120
+ "type": "string",
1121
+ "default": "垃圾箱",
1122
+ "description": "排除垃圾箱。"
1123
+ }
1124
+ ],
1125
+ "output": {
1126
+ "shape": "array"
1127
+ }
1128
+ },
1129
+ {
1130
+ "name": "zentodo.task.move",
1131
+ "domain": "task",
1132
+ "action": "move",
1133
+ "description": "调用 /taskController/updateTaskCreateTime。",
1134
+ "http": {
1135
+ "method": "POST",
1136
+ "path": "/taskController/updateTaskCreateTime"
1137
+ },
1138
+ "scopes": [
1139
+ "write"
1140
+ ],
1141
+ "annotations": {
1142
+ "readOnly": false,
1143
+ "idempotent": false,
1144
+ "destructive": false
1145
+ },
1146
+ "params": [
1147
+ {
1148
+ "name": "task_key",
1149
+ "backendName": "taskKey",
1150
+ "type": "integer",
1151
+ "required": true,
1152
+ "description": "任务 taskKey。"
1153
+ },
1154
+ {
1155
+ "name": "task_create_time",
1156
+ "backendName": "taskCreateTime",
1157
+ "type": "datetime",
1158
+ "transform": "isoToBackendDateTime",
1159
+ "required": true,
1160
+ "description": "新时间(ISO)。"
1161
+ }
1162
+ ],
1163
+ "output": {
1164
+ "shape": "object"
1165
+ }
1166
+ },
1167
+ {
1168
+ "name": "zentodo.task.sync-pull",
1169
+ "domain": "task",
1170
+ "action": "sync-pull",
1171
+ "description": "调用 /taskController/getSyncTaskList。",
1172
+ "http": {
1173
+ "method": "POST",
1174
+ "path": "/taskController/getSyncTaskList"
1175
+ },
1176
+ "scopes": [
1177
+ "sync",
1178
+ "read"
1179
+ ],
1180
+ "annotations": {
1181
+ "readOnly": true,
1182
+ "idempotent": false,
1183
+ "destructive": false
1184
+ },
1185
+ "params": [
1186
+ {
1187
+ "name": "client_version",
1188
+ "backendName": "clientVersion",
1189
+ "type": "integer",
1190
+ "required": true,
1191
+ "description": "客户端已知版本号。"
1192
+ }
1193
+ ],
1194
+ "output": {
1195
+ "shape": "array"
1196
+ }
1197
+ },
1198
+ {
1199
+ "name": "zentodo.task.sync-push",
1200
+ "domain": "task",
1201
+ "action": "sync-push",
1202
+ "description": "调用 /taskController/putSyncTask。所有字段通过 FormData 提交,自动剥离 id / rowid。",
1203
+ "http": {
1204
+ "method": "POST",
1205
+ "path": "/taskController/putSyncTask",
1206
+ "pragmas": [
1207
+ "stripAutoKeys"
1208
+ ]
1209
+ },
1210
+ "scopes": [
1211
+ "sync",
1212
+ "write"
1213
+ ],
1214
+ "annotations": {
1215
+ "readOnly": false,
1216
+ "idempotent": false,
1217
+ "destructive": false
1218
+ },
1219
+ "params": [
1220
+ {
1221
+ "name": "task_key",
1222
+ "backendName": "taskKey",
1223
+ "type": "integer",
1224
+ "required": true,
1225
+ "description": "任务 taskKey。"
1226
+ },
1227
+ {
1228
+ "name": "record",
1229
+ "type": "object",
1230
+ "description": "完整记录字段(打平)。"
1231
+ }
1232
+ ],
1233
+ "output": {
1234
+ "shape": "scalar"
1235
+ }
1236
+ },
1237
+ {
1238
+ "name": "zentodo.task.list-all",
1239
+ "domain": "task",
1240
+ "action": "list-all",
1241
+ "description": "调用 /taskController/getAllTaskByUserId。",
1242
+ "http": {
1243
+ "method": "POST",
1244
+ "path": "/taskController/getAllTaskByUserId"
1245
+ },
1246
+ "scopes": [
1247
+ "read"
1248
+ ],
1249
+ "annotations": {
1250
+ "readOnly": true,
1251
+ "idempotent": true,
1252
+ "destructive": false
1253
+ },
1254
+ "params": [],
1255
+ "output": {
1256
+ "shape": "array"
1257
+ }
1258
+ },
1259
+ {
1260
+ "name": "zentodo.subtask.sync-push",
1261
+ "domain": "subtask",
1262
+ "action": "sync-push",
1263
+ "description": "调用 /subTaskController/putSyncSubTask。所有字段通过 FormData 提交,自动剥离 id/rowid。",
1264
+ "http": {
1265
+ "method": "POST",
1266
+ "path": "/subTaskController/putSyncSubTask",
1267
+ "pragmas": [
1268
+ "stripAutoKeys"
1269
+ ]
1270
+ },
1271
+ "scopes": [
1272
+ "sync",
1273
+ "write"
1274
+ ],
1275
+ "annotations": {
1276
+ "readOnly": false,
1277
+ "idempotent": false,
1278
+ "destructive": false
1279
+ },
1280
+ "params": [
1281
+ {
1282
+ "name": "sub_task_key",
1283
+ "backendName": "subTaskKey",
1284
+ "type": "integer",
1285
+ "description": "已存在的子任务 key(省略则新建)。"
1286
+ },
1287
+ {
1288
+ "name": "task_key",
1289
+ "backendName": "taskKey",
1290
+ "type": "integer",
1291
+ "required": true,
1292
+ "description": "父任务 taskKey。"
1293
+ },
1294
+ {
1295
+ "name": "title",
1296
+ "backendName": "subTaskTitle",
1297
+ "type": "string",
1298
+ "description": "子任务标题。"
1299
+ },
1300
+ {
1301
+ "name": "state",
1302
+ "backendName": "subTaskState",
1303
+ "type": "integer",
1304
+ "description": "状态(0=完成, 1=未完成)。"
1305
+ },
1306
+ {
1307
+ "name": "sync_flag",
1308
+ "backendName": "syncFlag",
1309
+ "type": "string",
1310
+ "default": "M",
1311
+ "description": "M=修改, D=删除, I=新增。"
1312
+ }
1313
+ ],
1314
+ "output": {
1315
+ "shape": "scalar"
1316
+ }
1317
+ },
1318
+ {
1319
+ "name": "zentodo.subtask.list-all",
1320
+ "domain": "subtask",
1321
+ "action": "list-all",
1322
+ "description": "调用 /subTaskController/getAllSubTaskByUserId。",
1323
+ "http": {
1324
+ "method": "POST",
1325
+ "path": "/subTaskController/getAllSubTaskByUserId"
1326
+ },
1327
+ "scopes": [
1328
+ "read"
1329
+ ],
1330
+ "annotations": {
1331
+ "readOnly": true,
1332
+ "idempotent": true,
1333
+ "destructive": false
1334
+ },
1335
+ "params": [],
1336
+ "output": {
1337
+ "shape": "array"
1338
+ }
1339
+ },
1340
+ {
1341
+ "name": "zentodo.subtask.sync-pull",
1342
+ "domain": "subtask",
1343
+ "action": "sync-pull",
1344
+ "description": "调用 /subTaskController/getSyncSubTaskList。",
1345
+ "http": {
1346
+ "method": "POST",
1347
+ "path": "/subTaskController/getSyncSubTaskList"
1348
+ },
1349
+ "scopes": [
1350
+ "sync",
1351
+ "read"
1352
+ ],
1353
+ "annotations": {
1354
+ "readOnly": true,
1355
+ "idempotent": false,
1356
+ "destructive": false
1357
+ },
1358
+ "params": [
1359
+ {
1360
+ "name": "client_version",
1361
+ "backendName": "clientVersion",
1362
+ "type": "integer",
1363
+ "required": true,
1364
+ "description": "客户端已知版本号。"
1365
+ }
1366
+ ],
1367
+ "output": {
1368
+ "shape": "array"
1369
+ }
1370
+ },
1371
+ {
1372
+ "name": "zentodo.project.sync-push",
1373
+ "domain": "project",
1374
+ "action": "sync-push",
1375
+ "description": "调用 /projectController/putSyncProject。所有字段通过 FormData 提交,自动剥离 id/rowid。",
1376
+ "http": {
1377
+ "method": "POST",
1378
+ "path": "/projectController/putSyncProject",
1379
+ "pragmas": [
1380
+ "stripAutoKeys"
1381
+ ]
1382
+ },
1383
+ "scopes": [
1384
+ "sync",
1385
+ "write"
1386
+ ],
1387
+ "annotations": {
1388
+ "readOnly": false,
1389
+ "idempotent": false,
1390
+ "destructive": false
1391
+ },
1392
+ "params": [
1393
+ {
1394
+ "name": "project_key",
1395
+ "backendName": "projectKey",
1396
+ "type": "integer",
1397
+ "description": "已存在的 projectKey(省略则新建)。"
1398
+ },
1399
+ {
1400
+ "name": "name",
1401
+ "backendName": "projectName",
1402
+ "type": "string",
1403
+ "description": "项目名称。"
1404
+ },
1405
+ {
1406
+ "name": "color",
1407
+ "backendName": "projectColor",
1408
+ "type": "string",
1409
+ "description": "十六进制颜色。"
1410
+ },
1411
+ {
1412
+ "name": "icon",
1413
+ "backendName": "projectIcon",
1414
+ "type": "string",
1415
+ "description": "图标标识。"
1416
+ },
1417
+ {
1418
+ "name": "parent_key",
1419
+ "backendName": "projectParentKey",
1420
+ "type": "integer",
1421
+ "description": "父项目 projectKey(用于子项目)。"
1422
+ },
1423
+ {
1424
+ "name": "state",
1425
+ "backendName": "projectState",
1426
+ "type": "integer",
1427
+ "description": "0=未开始, 1=进行中, 2=已完成, 3=已暂停, 4=已取消。"
1428
+ },
1429
+ {
1430
+ "name": "archived",
1431
+ "backendName": "isArchived",
1432
+ "type": "boolean",
1433
+ "transform": "booleanToString",
1434
+ "description": "归档标记。"
1435
+ },
1436
+ {
1437
+ "name": "sync_flag",
1438
+ "backendName": "syncFlag",
1439
+ "type": "string",
1440
+ "default": "M",
1441
+ "description": "M=修改, D=删除, I=新增。"
1442
+ }
1443
+ ],
1444
+ "output": {
1445
+ "shape": "scalar"
1446
+ }
1447
+ },
1448
+ {
1449
+ "name": "zentodo.project.list-all",
1450
+ "domain": "project",
1451
+ "action": "list-all",
1452
+ "description": "调用 /projectController/getAllProjectByUserId。",
1453
+ "http": {
1454
+ "method": "POST",
1455
+ "path": "/projectController/getAllProjectByUserId"
1456
+ },
1457
+ "scopes": [
1458
+ "read"
1459
+ ],
1460
+ "annotations": {
1461
+ "readOnly": true,
1462
+ "idempotent": true,
1463
+ "destructive": false
1464
+ },
1465
+ "params": [],
1466
+ "output": {
1467
+ "shape": "array"
1468
+ }
1469
+ },
1470
+ {
1471
+ "name": "zentodo.project.sync-pull",
1472
+ "domain": "project",
1473
+ "action": "sync-pull",
1474
+ "description": "调用 /projectController/getSyncProjectList。",
1475
+ "http": {
1476
+ "method": "POST",
1477
+ "path": "/projectController/getSyncProjectList"
1478
+ },
1479
+ "scopes": [
1480
+ "sync",
1481
+ "read"
1482
+ ],
1483
+ "annotations": {
1484
+ "readOnly": true,
1485
+ "idempotent": false,
1486
+ "destructive": false
1487
+ },
1488
+ "params": [
1489
+ {
1490
+ "name": "client_version",
1491
+ "backendName": "clientVersion",
1492
+ "type": "integer",
1493
+ "required": true,
1494
+ "description": "客户端已知版本号。"
1495
+ }
1496
+ ],
1497
+ "output": {
1498
+ "shape": "array"
1499
+ }
1500
+ },
1501
+ {
1502
+ "name": "zentodo.subproject.sync-push",
1503
+ "domain": "subproject",
1504
+ "action": "sync-push",
1505
+ "description": "调用 /subProjectController/putSyncSubProject。",
1506
+ "http": {
1507
+ "method": "POST",
1508
+ "path": "/subProjectController/putSyncSubProject",
1509
+ "pragmas": [
1510
+ "stripAutoKeys"
1511
+ ]
1512
+ },
1513
+ "scopes": [
1514
+ "sync",
1515
+ "write"
1516
+ ],
1517
+ "annotations": {
1518
+ "readOnly": false,
1519
+ "idempotent": false,
1520
+ "destructive": false
1521
+ },
1522
+ "params": [
1523
+ {
1524
+ "name": "sub_project_key",
1525
+ "backendName": "subProjectKey",
1526
+ "type": "integer",
1527
+ "description": "已存在的子项目 key。"
1528
+ },
1529
+ {
1530
+ "name": "project_key",
1531
+ "backendName": "projectKey",
1532
+ "type": "integer",
1533
+ "required": true,
1534
+ "description": "父项目 projectKey。"
1535
+ },
1536
+ {
1537
+ "name": "name",
1538
+ "backendName": "subProjectName",
1539
+ "type": "string",
1540
+ "description": "子项目名称。"
1541
+ },
1542
+ {
1543
+ "name": "sync_flag",
1544
+ "backendName": "syncFlag",
1545
+ "type": "string",
1546
+ "default": "M",
1547
+ "description": "同步标记。"
1548
+ }
1549
+ ],
1550
+ "output": {
1551
+ "shape": "scalar"
1552
+ }
1553
+ },
1554
+ {
1555
+ "name": "zentodo.subproject.list-all",
1556
+ "domain": "subproject",
1557
+ "action": "list-all",
1558
+ "description": "调用 /subProjectController/getAllSubProjectByUserId。",
1559
+ "http": {
1560
+ "method": "POST",
1561
+ "path": "/subProjectController/getAllSubProjectByUserId"
1562
+ },
1563
+ "scopes": [
1564
+ "read"
1565
+ ],
1566
+ "annotations": {
1567
+ "readOnly": true,
1568
+ "idempotent": true,
1569
+ "destructive": false
1570
+ },
1571
+ "params": [],
1572
+ "output": {
1573
+ "shape": "array"
1574
+ }
1575
+ },
1576
+ {
1577
+ "name": "zentodo.subproject.sync-pull",
1578
+ "domain": "subproject",
1579
+ "action": "sync-pull",
1580
+ "description": "调用 /subProjectController/getSyncSubProjectList。",
1581
+ "http": {
1582
+ "method": "POST",
1583
+ "path": "/subProjectController/getSyncSubProjectList"
1584
+ },
1585
+ "scopes": [
1586
+ "sync",
1587
+ "read"
1588
+ ],
1589
+ "annotations": {
1590
+ "readOnly": true,
1591
+ "idempotent": false,
1592
+ "destructive": false
1593
+ },
1594
+ "params": [
1595
+ {
1596
+ "name": "client_version",
1597
+ "backendName": "clientVersion",
1598
+ "type": "integer",
1599
+ "required": true,
1600
+ "description": "客户端已知版本号。"
1601
+ }
1602
+ ],
1603
+ "output": {
1604
+ "shape": "array"
1605
+ }
1606
+ },
1607
+ {
1608
+ "name": "zentodo.scene.sync-push",
1609
+ "domain": "scene",
1610
+ "action": "sync-push",
1611
+ "description": "调用 /sceneController/putSyncScene。",
1612
+ "http": {
1613
+ "method": "POST",
1614
+ "path": "/sceneController/putSyncScene",
1615
+ "pragmas": [
1616
+ "stripAutoKeys"
1617
+ ]
1618
+ },
1619
+ "scopes": [
1620
+ "sync",
1621
+ "write"
1622
+ ],
1623
+ "annotations": {
1624
+ "readOnly": false,
1625
+ "idempotent": false,
1626
+ "destructive": false
1627
+ },
1628
+ "params": [
1629
+ {
1630
+ "name": "scene_key",
1631
+ "backendName": "sceneKey",
1632
+ "type": "integer",
1633
+ "description": "已存在的场景 key。"
1634
+ },
1635
+ {
1636
+ "name": "name",
1637
+ "backendName": "sceneName",
1638
+ "type": "string",
1639
+ "description": "场景名称。"
1640
+ },
1641
+ {
1642
+ "name": "icon",
1643
+ "backendName": "sceneIcon",
1644
+ "type": "string",
1645
+ "description": "图标标识。"
1646
+ },
1647
+ {
1648
+ "name": "desc",
1649
+ "backendName": "sceneDescription",
1650
+ "type": "string",
1651
+ "description": "场景描述。"
1652
+ },
1653
+ {
1654
+ "name": "sync_flag",
1655
+ "backendName": "syncFlag",
1656
+ "type": "string",
1657
+ "default": "M",
1658
+ "description": "同步标记。"
1659
+ }
1660
+ ],
1661
+ "output": {
1662
+ "shape": "scalar"
1663
+ }
1664
+ },
1665
+ {
1666
+ "name": "zentodo.scene.list-all",
1667
+ "domain": "scene",
1668
+ "action": "list-all",
1669
+ "description": "调用 /sceneController/getAllSceneByUserId。",
1670
+ "http": {
1671
+ "method": "POST",
1672
+ "path": "/sceneController/getAllSceneByUserId"
1673
+ },
1674
+ "scopes": [
1675
+ "read"
1676
+ ],
1677
+ "annotations": {
1678
+ "readOnly": true,
1679
+ "idempotent": true,
1680
+ "destructive": false
1681
+ },
1682
+ "params": [],
1683
+ "output": {
1684
+ "shape": "array"
1685
+ }
1686
+ },
1687
+ {
1688
+ "name": "zentodo.scene.sync-pull",
1689
+ "domain": "scene",
1690
+ "action": "sync-pull",
1691
+ "description": "调用 /sceneController/getSyncSceneList。",
1692
+ "http": {
1693
+ "method": "POST",
1694
+ "path": "/sceneController/getSyncSceneList"
1695
+ },
1696
+ "scopes": [
1697
+ "sync",
1698
+ "read"
1699
+ ],
1700
+ "annotations": {
1701
+ "readOnly": true,
1702
+ "idempotent": false,
1703
+ "destructive": false
1704
+ },
1705
+ "params": [
1706
+ {
1707
+ "name": "client_version",
1708
+ "backendName": "clientVersion",
1709
+ "type": "integer",
1710
+ "required": true,
1711
+ "description": "客户端已知版本号。"
1712
+ }
1713
+ ],
1714
+ "output": {
1715
+ "shape": "array"
1716
+ }
1717
+ },
1718
+ {
1719
+ "name": "zentodo.target.sync-push",
1720
+ "domain": "target",
1721
+ "action": "sync-push",
1722
+ "description": "调用 /targetController/putSyncTarget。",
1723
+ "http": {
1724
+ "method": "POST",
1725
+ "path": "/targetController/putSyncTarget",
1726
+ "pragmas": [
1727
+ "stripAutoKeys"
1728
+ ]
1729
+ },
1730
+ "scopes": [
1731
+ "sync",
1732
+ "write"
1733
+ ],
1734
+ "annotations": {
1735
+ "readOnly": false,
1736
+ "idempotent": false,
1737
+ "destructive": false
1738
+ },
1739
+ "params": [
1740
+ {
1741
+ "name": "target_key",
1742
+ "backendName": "targetKey",
1743
+ "type": "integer",
1744
+ "description": "已存在的目标 key。"
1745
+ },
1746
+ {
1747
+ "name": "title",
1748
+ "backendName": "targetTitle",
1749
+ "type": "string",
1750
+ "description": "目标标题。"
1751
+ },
1752
+ {
1753
+ "name": "desc",
1754
+ "backendName": "targetDescription",
1755
+ "type": "string",
1756
+ "description": "目标描述。"
1757
+ },
1758
+ {
1759
+ "name": "deadline",
1760
+ "backendName": "targetDeadline",
1761
+ "type": "date",
1762
+ "transform": "isoToBackendDate",
1763
+ "description": "截止日期(ISO)。"
1764
+ },
1765
+ {
1766
+ "name": "sync_flag",
1767
+ "backendName": "syncFlag",
1768
+ "type": "string",
1769
+ "default": "M",
1770
+ "description": "同步标记。"
1771
+ }
1772
+ ],
1773
+ "output": {
1774
+ "shape": "scalar"
1775
+ }
1776
+ },
1777
+ {
1778
+ "name": "zentodo.target.list-all",
1779
+ "domain": "target",
1780
+ "action": "list-all",
1781
+ "description": "调用 /targetController/getAllTargetByUserId。",
1782
+ "http": {
1783
+ "method": "POST",
1784
+ "path": "/targetController/getAllTargetByUserId"
1785
+ },
1786
+ "scopes": [
1787
+ "read"
1788
+ ],
1789
+ "annotations": {
1790
+ "readOnly": true,
1791
+ "idempotent": true,
1792
+ "destructive": false
1793
+ },
1794
+ "params": [],
1795
+ "output": {
1796
+ "shape": "array"
1797
+ }
1798
+ },
1799
+ {
1800
+ "name": "zentodo.target.sync-pull",
1801
+ "domain": "target",
1802
+ "action": "sync-pull",
1803
+ "description": "调用 /targetController/getSyncTargetList。",
1804
+ "http": {
1805
+ "method": "POST",
1806
+ "path": "/targetController/getSyncTargetList"
1807
+ },
1808
+ "scopes": [
1809
+ "sync",
1810
+ "read"
1811
+ ],
1812
+ "annotations": {
1813
+ "readOnly": true,
1814
+ "idempotent": false,
1815
+ "destructive": false
1816
+ },
1817
+ "params": [
1818
+ {
1819
+ "name": "client_version",
1820
+ "backendName": "clientVersion",
1821
+ "type": "integer",
1822
+ "required": true,
1823
+ "description": "客户端已知版本号。"
1824
+ }
1825
+ ],
1826
+ "output": {
1827
+ "shape": "array"
1828
+ }
1829
+ },
1830
+ {
1831
+ "name": "zentodo.label.sync-push",
1832
+ "domain": "label",
1833
+ "action": "sync-push",
1834
+ "description": "调用 /labelController/putSyncLabel。",
1835
+ "http": {
1836
+ "method": "POST",
1837
+ "path": "/labelController/putSyncLabel",
1838
+ "pragmas": [
1839
+ "stripAutoKeys"
1840
+ ]
1841
+ },
1842
+ "scopes": [
1843
+ "sync",
1844
+ "write"
1845
+ ],
1846
+ "annotations": {
1847
+ "readOnly": false,
1848
+ "idempotent": false,
1849
+ "destructive": false
1850
+ },
1851
+ "params": [
1852
+ {
1853
+ "name": "label_key",
1854
+ "backendName": "labelKey",
1855
+ "type": "integer",
1856
+ "description": "已存在的标签 key。"
1857
+ },
1858
+ {
1859
+ "name": "name",
1860
+ "backendName": "labelName",
1861
+ "type": "string",
1862
+ "description": "标签名。"
1863
+ },
1864
+ {
1865
+ "name": "color",
1866
+ "backendName": "labelColor",
1867
+ "type": "string",
1868
+ "description": "十六进制颜色。"
1869
+ },
1870
+ {
1871
+ "name": "sync_flag",
1872
+ "backendName": "syncFlag",
1873
+ "type": "string",
1874
+ "default": "M",
1875
+ "description": "同步标记。"
1876
+ }
1877
+ ],
1878
+ "output": {
1879
+ "shape": "scalar"
1880
+ }
1881
+ },
1882
+ {
1883
+ "name": "zentodo.label.list-all",
1884
+ "domain": "label",
1885
+ "action": "list-all",
1886
+ "description": "调用 /labelController/getAllLabelByUserId。",
1887
+ "http": {
1888
+ "method": "POST",
1889
+ "path": "/labelController/getAllLabelByUserId"
1890
+ },
1891
+ "scopes": [
1892
+ "read"
1893
+ ],
1894
+ "annotations": {
1895
+ "readOnly": true,
1896
+ "idempotent": true,
1897
+ "destructive": false
1898
+ },
1899
+ "params": [],
1900
+ "output": {
1901
+ "shape": "array"
1902
+ }
1903
+ },
1904
+ {
1905
+ "name": "zentodo.label.upload-bg",
1906
+ "domain": "label",
1907
+ "action": "upload-bg",
1908
+ "description": "调用 /labelController/uploadLabelBkFile(multipart/form-data,字段名 file)。",
1909
+ "http": {
1910
+ "method": "POST",
1911
+ "path": "/labelController/uploadLabelBkFile"
1912
+ },
1913
+ "scopes": [
1914
+ "write"
1915
+ ],
1916
+ "annotations": {
1917
+ "readOnly": false,
1918
+ "idempotent": false,
1919
+ "destructive": false
1920
+ },
1921
+ "params": [
1922
+ {
1923
+ "name": "label_key",
1924
+ "backendName": "labelKey",
1925
+ "type": "integer",
1926
+ "required": true,
1927
+ "description": "目标标签 key。"
1928
+ },
1929
+ {
1930
+ "name": "file",
1931
+ "source": "file",
1932
+ "type": "file",
1933
+ "required": true,
1934
+ "description": "图片文件。"
1935
+ }
1936
+ ],
1937
+ "output": {
1938
+ "shape": "object"
1939
+ }
1940
+ },
1941
+ {
1942
+ "name": "zentodo.toplabel.sync-push",
1943
+ "domain": "toplabel",
1944
+ "action": "sync-push",
1945
+ "description": "调用 /topLabelController/putSyncTopLabel。",
1946
+ "http": {
1947
+ "method": "POST",
1948
+ "path": "/topLabelController/putSyncTopLabel",
1949
+ "pragmas": [
1950
+ "stripAutoKeys"
1951
+ ]
1952
+ },
1953
+ "scopes": [
1954
+ "sync",
1955
+ "write"
1956
+ ],
1957
+ "annotations": {
1958
+ "readOnly": false,
1959
+ "idempotent": false,
1960
+ "destructive": false
1961
+ },
1962
+ "params": [
1963
+ {
1964
+ "name": "top_label_key",
1965
+ "backendName": "topLabelKey",
1966
+ "type": "integer",
1967
+ "description": "已存在的顶级标签 key。"
1968
+ },
1969
+ {
1970
+ "name": "name",
1971
+ "backendName": "topLabelName",
1972
+ "type": "string",
1973
+ "description": "名称。"
1974
+ },
1975
+ {
1976
+ "name": "sync_flag",
1977
+ "backendName": "syncFlag",
1978
+ "type": "string",
1979
+ "default": "M",
1980
+ "description": "同步标记。"
1981
+ }
1982
+ ],
1983
+ "output": {
1984
+ "shape": "scalar"
1985
+ }
1986
+ },
1987
+ {
1988
+ "name": "zentodo.toplabel.list-all",
1989
+ "domain": "toplabel",
1990
+ "action": "list-all",
1991
+ "description": "调用 /topLabelController/getAllTopLabelByUserId。",
1992
+ "http": {
1993
+ "method": "POST",
1994
+ "path": "/topLabelController/getAllTopLabelByUserId"
1995
+ },
1996
+ "scopes": [
1997
+ "read"
1998
+ ],
1999
+ "annotations": {
2000
+ "readOnly": true,
2001
+ "idempotent": true,
2002
+ "destructive": false
2003
+ },
2004
+ "params": [],
2005
+ "output": {
2006
+ "shape": "array"
2007
+ }
2008
+ },
2009
+ {
2010
+ "name": "zentodo.toplabel.sync-pull",
2011
+ "domain": "toplabel",
2012
+ "action": "sync-pull",
2013
+ "description": "调用 /topLabelController/getSyncTopLabelList。",
2014
+ "http": {
2015
+ "method": "POST",
2016
+ "path": "/topLabelController/getSyncTopLabelList"
2017
+ },
2018
+ "scopes": [
2019
+ "sync",
2020
+ "read"
2021
+ ],
2022
+ "annotations": {
2023
+ "readOnly": true,
2024
+ "idempotent": false,
2025
+ "destructive": false
2026
+ },
2027
+ "params": [
2028
+ {
2029
+ "name": "client_version",
2030
+ "backendName": "clientVersion",
2031
+ "type": "integer",
2032
+ "required": true,
2033
+ "description": "客户端已知版本号。"
2034
+ }
2035
+ ],
2036
+ "output": {
2037
+ "shape": "array"
2038
+ }
2039
+ },
2040
+ {
2041
+ "name": "zentodo.quadrant.sync-push",
2042
+ "domain": "quadrant",
2043
+ "action": "sync-push",
2044
+ "description": "调用 /quadrantController/putSyncQuadrant。",
2045
+ "http": {
2046
+ "method": "POST",
2047
+ "path": "/quadrantController/putSyncQuadrant",
2048
+ "pragmas": [
2049
+ "stripAutoKeys"
2050
+ ]
2051
+ },
2052
+ "scopes": [
2053
+ "sync",
2054
+ "write"
2055
+ ],
2056
+ "annotations": {
2057
+ "readOnly": false,
2058
+ "idempotent": false,
2059
+ "destructive": false
2060
+ },
2061
+ "params": [
2062
+ {
2063
+ "name": "quadrant_key",
2064
+ "backendName": "quadrantKey",
2065
+ "type": "integer",
2066
+ "description": "已存在的 quadrantKey。"
2067
+ },
2068
+ {
2069
+ "name": "title",
2070
+ "backendName": "quadrantTitle",
2071
+ "type": "string",
2072
+ "description": "象限标题。"
2073
+ },
2074
+ {
2075
+ "name": "index",
2076
+ "backendName": "quadrantIndex",
2077
+ "type": "integer",
2078
+ "description": "象限索引 0..3。"
2079
+ },
2080
+ {
2081
+ "name": "sync_flag",
2082
+ "backendName": "syncFlag",
2083
+ "type": "string",
2084
+ "default": "M",
2085
+ "description": "同步标记。"
2086
+ }
2087
+ ],
2088
+ "output": {
2089
+ "shape": "scalar"
2090
+ }
2091
+ },
2092
+ {
2093
+ "name": "zentodo.quadrant.list-all",
2094
+ "domain": "quadrant",
2095
+ "action": "list-all",
2096
+ "description": "调用 /quadrantController/getAllQuadrantByUserId。",
2097
+ "http": {
2098
+ "method": "POST",
2099
+ "path": "/quadrantController/getAllQuadrantByUserId"
2100
+ },
2101
+ "scopes": [
2102
+ "read"
2103
+ ],
2104
+ "annotations": {
2105
+ "readOnly": true,
2106
+ "idempotent": true,
2107
+ "destructive": false
2108
+ },
2109
+ "params": [],
2110
+ "output": {
2111
+ "shape": "array"
2112
+ }
2113
+ },
2114
+ {
2115
+ "name": "zentodo.quadrant.sync-pull",
2116
+ "domain": "quadrant",
2117
+ "action": "sync-pull",
2118
+ "description": "调用 /quadrantController/getSyncQuadrantList。",
2119
+ "http": {
2120
+ "method": "POST",
2121
+ "path": "/quadrantController/getSyncQuadrantList"
2122
+ },
2123
+ "scopes": [
2124
+ "sync",
2125
+ "read"
2126
+ ],
2127
+ "annotations": {
2128
+ "readOnly": true,
2129
+ "idempotent": false,
2130
+ "destructive": false
2131
+ },
2132
+ "params": [
2133
+ {
2134
+ "name": "client_version",
2135
+ "backendName": "clientVersion",
2136
+ "type": "integer",
2137
+ "required": true,
2138
+ "description": "客户端已知版本号。"
2139
+ }
2140
+ ],
2141
+ "output": {
2142
+ "shape": "array"
2143
+ }
2144
+ },
2145
+ {
2146
+ "name": "zentodo.timeline.sync-push",
2147
+ "domain": "timeline",
2148
+ "action": "sync-push",
2149
+ "description": "调用 /timeLineController/putSyncTimeLine。",
2150
+ "http": {
2151
+ "method": "POST",
2152
+ "path": "/timeLineController/putSyncTimeLine",
2153
+ "pragmas": [
2154
+ "stripAutoKeys"
2155
+ ]
2156
+ },
2157
+ "scopes": [
2158
+ "sync",
2159
+ "write"
2160
+ ],
2161
+ "annotations": {
2162
+ "readOnly": false,
2163
+ "idempotent": false,
2164
+ "destructive": false
2165
+ },
2166
+ "params": [
2167
+ {
2168
+ "name": "time_line_key",
2169
+ "backendName": "timeLineKey",
2170
+ "type": "integer",
2171
+ "description": "已存在的 timeLineKey。"
2172
+ },
2173
+ {
2174
+ "name": "title",
2175
+ "backendName": "timeLineTitle",
2176
+ "type": "string",
2177
+ "description": "标题。"
2178
+ },
2179
+ {
2180
+ "name": "content",
2181
+ "backendName": "timeLineContent",
2182
+ "type": "string",
2183
+ "description": "正文。"
2184
+ },
2185
+ {
2186
+ "name": "time",
2187
+ "backendName": "timeLineTime",
2188
+ "type": "datetime",
2189
+ "transform": "isoToBackendDateTime",
2190
+ "description": "时间戳(ISO)。"
2191
+ },
2192
+ {
2193
+ "name": "sync_flag",
2194
+ "backendName": "syncFlag",
2195
+ "type": "string",
2196
+ "default": "M",
2197
+ "description": "同步标记。"
2198
+ }
2199
+ ],
2200
+ "output": {
2201
+ "shape": "scalar"
2202
+ }
2203
+ },
2204
+ {
2205
+ "name": "zentodo.timeline.list-all",
2206
+ "domain": "timeline",
2207
+ "action": "list-all",
2208
+ "description": "调用 /timeLineController/getAllTimeLineByUserId。",
2209
+ "http": {
2210
+ "method": "POST",
2211
+ "path": "/timeLineController/getAllTimeLineByUserId"
2212
+ },
2213
+ "scopes": [
2214
+ "read"
2215
+ ],
2216
+ "annotations": {
2217
+ "readOnly": true,
2218
+ "idempotent": true,
2219
+ "destructive": false
2220
+ },
2221
+ "params": [],
2222
+ "output": {
2223
+ "shape": "array"
2224
+ }
2225
+ },
2226
+ {
2227
+ "name": "zentodo.timeline.sync-pull",
2228
+ "domain": "timeline",
2229
+ "action": "sync-pull",
2230
+ "description": "调用 /timeLineController/getSyncTimeLineList。",
2231
+ "http": {
2232
+ "method": "POST",
2233
+ "path": "/timeLineController/getSyncTimeLineList"
2234
+ },
2235
+ "scopes": [
2236
+ "sync",
2237
+ "read"
2238
+ ],
2239
+ "annotations": {
2240
+ "readOnly": true,
2241
+ "idempotent": false,
2242
+ "destructive": false
2243
+ },
2244
+ "params": [
2245
+ {
2246
+ "name": "client_version",
2247
+ "backendName": "clientVersion",
2248
+ "type": "integer",
2249
+ "required": true,
2250
+ "description": "客户端已知版本号。"
2251
+ }
2252
+ ],
2253
+ "output": {
2254
+ "shape": "array"
2255
+ }
2256
+ },
2257
+ {
2258
+ "name": "zentodo.attach.upload-task",
2259
+ "domain": "attach",
2260
+ "action": "upload-task",
2261
+ "description": "调用 /attachmentController/uploadTaskAttachmentFile(multipart,字段 file)。",
2262
+ "http": {
2263
+ "method": "POST",
2264
+ "path": "/attachmentController/uploadTaskAttachmentFile"
2265
+ },
2266
+ "scopes": [
2267
+ "write"
2268
+ ],
2269
+ "annotations": {
2270
+ "readOnly": false,
2271
+ "idempotent": false,
2272
+ "destructive": false
2273
+ },
2274
+ "params": [
2275
+ {
2276
+ "name": "task_key",
2277
+ "backendName": "taskKey",
2278
+ "type": "integer",
2279
+ "required": true,
2280
+ "description": "目标任务 taskKey。"
2281
+ },
2282
+ {
2283
+ "name": "file",
2284
+ "source": "file",
2285
+ "type": "file",
2286
+ "required": true,
2287
+ "description": "附件文件。"
2288
+ }
2289
+ ],
2290
+ "output": {
2291
+ "shape": "object"
2292
+ }
2293
+ },
2294
+ {
2295
+ "name": "zentodo.attach.upload-thinkmap",
2296
+ "domain": "attach",
2297
+ "action": "upload-thinkmap",
2298
+ "description": "调用 /attachmentController/uploadThinkMapAttachmentFile。",
2299
+ "http": {
2300
+ "method": "POST",
2301
+ "path": "/attachmentController/uploadThinkMapAttachmentFile"
2302
+ },
2303
+ "scopes": [
2304
+ "write"
2305
+ ],
2306
+ "annotations": {
2307
+ "readOnly": false,
2308
+ "idempotent": false,
2309
+ "destructive": false
2310
+ },
2311
+ "params": [
2312
+ {
2313
+ "name": "gd_meta_key",
2314
+ "backendName": "gdMetaKey",
2315
+ "type": "integer",
2316
+ "required": true,
2317
+ "description": "目标 GDMeta key。"
2318
+ },
2319
+ {
2320
+ "name": "file",
2321
+ "source": "file",
2322
+ "type": "file",
2323
+ "required": true,
2324
+ "description": "附件文件。"
2325
+ }
2326
+ ],
2327
+ "output": {
2328
+ "shape": "object"
2329
+ }
2330
+ },
2331
+ {
2332
+ "name": "zentodo.attach.upload-rewardstore",
2333
+ "domain": "attach",
2334
+ "action": "upload-rewardstore",
2335
+ "description": "调用 /attachmentController/uploadRewardStoreFile。",
2336
+ "http": {
2337
+ "method": "POST",
2338
+ "path": "/attachmentController/uploadRewardStoreFile"
2339
+ },
2340
+ "scopes": [
2341
+ "write"
2342
+ ],
2343
+ "annotations": {
2344
+ "readOnly": false,
2345
+ "idempotent": false,
2346
+ "destructive": false
2347
+ },
2348
+ "params": [
2349
+ {
2350
+ "name": "reward_id",
2351
+ "backendName": "rewardId",
2352
+ "type": "integer",
2353
+ "required": true,
2354
+ "description": "目标 reward id。"
2355
+ },
2356
+ {
2357
+ "name": "file",
2358
+ "source": "file",
2359
+ "type": "file",
2360
+ "required": true,
2361
+ "description": "文件。"
2362
+ }
2363
+ ],
2364
+ "output": {
2365
+ "shape": "object"
2366
+ }
2367
+ },
2368
+ {
2369
+ "name": "zentodo.attach.list-all",
2370
+ "domain": "attach",
2371
+ "action": "list-all",
2372
+ "description": "调用 /attachmentController/getAllAttachmentByUserId。",
2373
+ "http": {
2374
+ "method": "POST",
2375
+ "path": "/attachmentController/getAllAttachmentByUserId"
2376
+ },
2377
+ "scopes": [
2378
+ "read"
2379
+ ],
2380
+ "annotations": {
2381
+ "readOnly": true,
2382
+ "idempotent": true,
2383
+ "destructive": false
2384
+ },
2385
+ "params": [],
2386
+ "output": {
2387
+ "shape": "array"
2388
+ }
2389
+ },
2390
+ {
2391
+ "name": "zentodo.attach.sync-pull",
2392
+ "domain": "attach",
2393
+ "action": "sync-pull",
2394
+ "description": "调用 /attachmentController/getSyncAttachmentList。",
2395
+ "http": {
2396
+ "method": "POST",
2397
+ "path": "/attachmentController/getSyncAttachmentList"
2398
+ },
2399
+ "scopes": [
2400
+ "sync",
2401
+ "read"
2402
+ ],
2403
+ "annotations": {
2404
+ "readOnly": true,
2405
+ "idempotent": false,
2406
+ "destructive": false
2407
+ },
2408
+ "params": [
2409
+ {
2410
+ "name": "client_version",
2411
+ "backendName": "clientVersion",
2412
+ "type": "integer",
2413
+ "required": true,
2414
+ "description": "客户端已知版本号。"
2415
+ }
2416
+ ],
2417
+ "output": {
2418
+ "shape": "array"
2419
+ }
2420
+ },
2421
+ {
2422
+ "name": "zentodo.attach.sync-push",
2423
+ "domain": "attach",
2424
+ "action": "sync-push",
2425
+ "description": "调用 /attachmentController/putSyncAttchment。",
2426
+ "http": {
2427
+ "method": "POST",
2428
+ "path": "/attachmentController/putSyncAttchment",
2429
+ "pragmas": [
2430
+ "stripAutoKeys"
2431
+ ]
2432
+ },
2433
+ "scopes": [
2434
+ "sync",
2435
+ "write"
2436
+ ],
2437
+ "annotations": {
2438
+ "readOnly": false,
2439
+ "idempotent": false,
2440
+ "destructive": false
2441
+ },
2442
+ "params": [
2443
+ {
2444
+ "name": "attachment_key",
2445
+ "backendName": "attachmentKey",
2446
+ "type": "integer",
2447
+ "description": "已存在的 attachmentKey。"
2448
+ },
2449
+ {
2450
+ "name": "sync_flag",
2451
+ "backendName": "syncFlag",
2452
+ "type": "string",
2453
+ "default": "M",
2454
+ "description": "同步标记。"
2455
+ }
2456
+ ],
2457
+ "output": {
2458
+ "shape": "scalar"
2459
+ }
2460
+ },
2461
+ {
2462
+ "name": "zentodo.pomo.start",
2463
+ "domain": "pomo",
2464
+ "action": "start",
2465
+ "description": "调用 /timerController/startPomodoro。",
2466
+ "http": {
2467
+ "method": "POST",
2468
+ "path": "/timerController/startPomodoro"
2469
+ },
2470
+ "scopes": [
2471
+ "write"
2472
+ ],
2473
+ "annotations": {
2474
+ "readOnly": false,
2475
+ "idempotent": false,
2476
+ "destructive": false
2477
+ },
2478
+ "params": [
2479
+ {
2480
+ "name": "task_key",
2481
+ "backendName": "taskKey",
2482
+ "type": "integer",
2483
+ "required": true,
2484
+ "description": "要专注的任务 taskKey。"
2485
+ },
2486
+ {
2487
+ "name": "duration_sec",
2488
+ "backendName": "duration",
2489
+ "type": "integer",
2490
+ "default": 1500,
2491
+ "description": "专注秒数(默认 25 分钟)。"
2492
+ },
2493
+ {
2494
+ "name": "break_sec",
2495
+ "backendName": "breakDuration",
2496
+ "type": "integer",
2497
+ "default": 300,
2498
+ "description": "短休秒数。"
2499
+ },
2500
+ {
2501
+ "name": "long_break_sec",
2502
+ "backendName": "longBreakDuration",
2503
+ "type": "integer",
2504
+ "default": 900,
2505
+ "description": "长休秒数。"
2506
+ }
2507
+ ],
2508
+ "output": {
2509
+ "shape": "object"
2510
+ }
2511
+ },
2512
+ {
2513
+ "name": "zentodo.pomo.stop",
2514
+ "domain": "pomo",
2515
+ "action": "stop",
2516
+ "description": "调用 /timerController/stopTimer。",
2517
+ "http": {
2518
+ "method": "POST",
2519
+ "path": "/timerController/stopTimer"
2520
+ },
2521
+ "scopes": [
2522
+ "write"
2523
+ ],
2524
+ "annotations": {
2525
+ "readOnly": false,
2526
+ "idempotent": false,
2527
+ "destructive": false
2528
+ },
2529
+ "params": [
2530
+ {
2531
+ "name": "timer_key",
2532
+ "backendName": "timerKey",
2533
+ "type": "string",
2534
+ "required": true,
2535
+ "description": "计时器 key。"
2536
+ }
2537
+ ],
2538
+ "output": {
2539
+ "shape": "object"
2540
+ }
2541
+ },
2542
+ {
2543
+ "name": "zentodo.pomo.history",
2544
+ "domain": "pomo",
2545
+ "action": "history",
2546
+ "description": "调用 /tomatoWorkerController/getAllTomatoByUserId。",
2547
+ "http": {
2548
+ "method": "POST",
2549
+ "path": "/tomatoWorkerController/getAllTomatoByUserId"
2550
+ },
2551
+ "scopes": [
2552
+ "read"
2553
+ ],
2554
+ "annotations": {
2555
+ "readOnly": true,
2556
+ "idempotent": true,
2557
+ "destructive": false
2558
+ },
2559
+ "params": [],
2560
+ "output": {
2561
+ "shape": "array"
2562
+ }
2563
+ },
2564
+ {
2565
+ "name": "zentodo.pomo.sync-pull-worker",
2566
+ "domain": "pomo",
2567
+ "action": "sync-pull-worker",
2568
+ "description": "调用 /tomatoWorkerController/getSyncTomatoWorkerList。",
2569
+ "http": {
2570
+ "method": "POST",
2571
+ "path": "/tomatoWorkerController/getSyncTomatoWorkerList"
2572
+ },
2573
+ "scopes": [
2574
+ "sync",
2575
+ "read"
2576
+ ],
2577
+ "annotations": {
2578
+ "readOnly": true,
2579
+ "idempotent": false,
2580
+ "destructive": false
2581
+ },
2582
+ "params": [
2583
+ {
2584
+ "name": "client_version",
2585
+ "backendName": "clientVersion",
2586
+ "type": "integer",
2587
+ "required": true,
2588
+ "description": "客户端已知版本号。"
2589
+ }
2590
+ ],
2591
+ "output": {
2592
+ "shape": "array"
2593
+ }
2594
+ },
2595
+ {
2596
+ "name": "zentodo.pomo.sync-push-worker",
2597
+ "domain": "pomo",
2598
+ "action": "sync-push-worker",
2599
+ "description": "调用 /tomatoWorkerController/putSyncTomatoWorker。",
2600
+ "http": {
2601
+ "method": "POST",
2602
+ "path": "/tomatoWorkerController/putSyncTomatoWorker",
2603
+ "pragmas": [
2604
+ "stripAutoKeys"
2605
+ ]
2606
+ },
2607
+ "scopes": [
2608
+ "sync",
2609
+ "write"
2610
+ ],
2611
+ "annotations": {
2612
+ "readOnly": false,
2613
+ "idempotent": false,
2614
+ "destructive": false
2615
+ },
2616
+ "params": [
2617
+ {
2618
+ "name": "tomato_key",
2619
+ "backendName": "tomatoKey",
2620
+ "type": "integer",
2621
+ "description": "已存在的 tomatoKey。"
2622
+ },
2623
+ {
2624
+ "name": "task_key",
2625
+ "backendName": "taskKey",
2626
+ "type": "integer",
2627
+ "description": "任务 taskKey。"
2628
+ },
2629
+ {
2630
+ "name": "sync_flag",
2631
+ "backendName": "syncFlag",
2632
+ "type": "string",
2633
+ "default": "M",
2634
+ "description": "同步标记。"
2635
+ }
2636
+ ],
2637
+ "output": {
2638
+ "shape": "scalar"
2639
+ }
2640
+ },
2641
+ {
2642
+ "name": "zentodo.pomo.config-get",
2643
+ "domain": "pomo",
2644
+ "action": "config-get",
2645
+ "description": "调用 /tomatoConfigController/getAllTomatoConfigByUserId。",
2646
+ "http": {
2647
+ "method": "POST",
2648
+ "path": "/tomatoConfigController/getAllTomatoConfigByUserId"
2649
+ },
2650
+ "scopes": [
2651
+ "read"
2652
+ ],
2653
+ "annotations": {
2654
+ "readOnly": true,
2655
+ "idempotent": true,
2656
+ "destructive": false
2657
+ },
2658
+ "params": [],
2659
+ "output": {
2660
+ "shape": "array"
2661
+ }
2662
+ },
2663
+ {
2664
+ "name": "zentodo.pomo.config-set",
2665
+ "domain": "pomo",
2666
+ "action": "config-set",
2667
+ "description": "调用 /tomatoConfigController/putSyncTomatoConfig。",
2668
+ "http": {
2669
+ "method": "POST",
2670
+ "path": "/tomatoConfigController/putSyncTomatoConfig",
2671
+ "pragmas": [
2672
+ "stripAutoKeys"
2673
+ ]
2674
+ },
2675
+ "scopes": [
2676
+ "sync",
2677
+ "write"
2678
+ ],
2679
+ "annotations": {
2680
+ "readOnly": false,
2681
+ "idempotent": false,
2682
+ "destructive": false
2683
+ },
2684
+ "params": [
2685
+ {
2686
+ "name": "config_key",
2687
+ "backendName": "configKey",
2688
+ "type": "integer",
2689
+ "description": "已存在的 configKey。"
2690
+ },
2691
+ {
2692
+ "name": "focus_duration_sec",
2693
+ "backendName": "focusDuration",
2694
+ "type": "integer",
2695
+ "description": "专注秒数。"
2696
+ },
2697
+ {
2698
+ "name": "break_duration_sec",
2699
+ "backendName": "breakDuration",
2700
+ "type": "integer",
2701
+ "description": "短休秒数。"
2702
+ },
2703
+ {
2704
+ "name": "long_break_duration_sec",
2705
+ "backendName": "longBreakDuration",
2706
+ "type": "integer",
2707
+ "description": "长休秒数。"
2708
+ },
2709
+ {
2710
+ "name": "long_break_every",
2711
+ "backendName": "longBreakEvery",
2712
+ "type": "integer",
2713
+ "description": "每多少轮后长休。"
2714
+ },
2715
+ {
2716
+ "name": "sync_flag",
2717
+ "backendName": "syncFlag",
2718
+ "type": "string",
2719
+ "default": "M",
2720
+ "description": "同步标记。"
2721
+ }
2722
+ ],
2723
+ "output": {
2724
+ "shape": "scalar"
2725
+ }
2726
+ },
2727
+ {
2728
+ "name": "zentodo.pomo.sync-pull-config",
2729
+ "domain": "pomo",
2730
+ "action": "sync-pull-config",
2731
+ "description": "调用 /tomatoConfigController/getSyncTomatoConfigList。",
2732
+ "http": {
2733
+ "method": "POST",
2734
+ "path": "/tomatoConfigController/getSyncTomatoConfigList"
2735
+ },
2736
+ "scopes": [
2737
+ "sync",
2738
+ "read"
2739
+ ],
2740
+ "annotations": {
2741
+ "readOnly": true,
2742
+ "idempotent": false,
2743
+ "destructive": false
2744
+ },
2745
+ "params": [
2746
+ {
2747
+ "name": "client_version",
2748
+ "backendName": "clientVersion",
2749
+ "type": "integer",
2750
+ "required": true,
2751
+ "description": "客户端已知版本号。"
2752
+ }
2753
+ ],
2754
+ "output": {
2755
+ "shape": "array"
2756
+ }
2757
+ },
2758
+ {
2759
+ "name": "zentodo.timer.start-task",
2760
+ "domain": "timer",
2761
+ "action": "start-task",
2762
+ "description": "调用 /timerController/startTaskTimer。",
2763
+ "http": {
2764
+ "method": "POST",
2765
+ "path": "/timerController/startTaskTimer"
2766
+ },
2767
+ "scopes": [
2768
+ "write"
2769
+ ],
2770
+ "annotations": {
2771
+ "readOnly": false,
2772
+ "idempotent": false,
2773
+ "destructive": false
2774
+ },
2775
+ "params": [
2776
+ {
2777
+ "name": "task_key",
2778
+ "backendName": "taskKey",
2779
+ "type": "integer",
2780
+ "required": true,
2781
+ "description": "任务 taskKey。"
2782
+ }
2783
+ ],
2784
+ "output": {
2785
+ "shape": "object"
2786
+ }
2787
+ },
2788
+ {
2789
+ "name": "zentodo.workstate.start",
2790
+ "domain": "workstate",
2791
+ "action": "start",
2792
+ "description": "调用 /workStateController/saveWorkState。",
2793
+ "http": {
2794
+ "method": "POST",
2795
+ "path": "/workStateController/saveWorkState"
2796
+ },
2797
+ "scopes": [
2798
+ "write"
2799
+ ],
2800
+ "annotations": {
2801
+ "readOnly": false,
2802
+ "idempotent": false,
2803
+ "destructive": false
2804
+ },
2805
+ "params": [
2806
+ {
2807
+ "name": "task_key",
2808
+ "backendName": "taskKey",
2809
+ "type": "integer",
2810
+ "description": "关联任务 taskKey。"
2811
+ },
2812
+ {
2813
+ "name": "scene_key",
2814
+ "backendName": "sceneKey",
2815
+ "type": "integer",
2816
+ "description": "关联场景 sceneKey。"
2817
+ },
2818
+ {
2819
+ "name": "title",
2820
+ "backendName": "title",
2821
+ "type": "string",
2822
+ "description": "本次会话标题。"
2823
+ }
2824
+ ],
2825
+ "output": {
2826
+ "shape": "object"
2827
+ }
2828
+ },
2829
+ {
2830
+ "name": "zentodo.workstate.stop",
2831
+ "domain": "workstate",
2832
+ "action": "stop",
2833
+ "description": "调用 /workStateController/stopWorkState。",
2834
+ "http": {
2835
+ "method": "POST",
2836
+ "path": "/workStateController/stopWorkState"
2837
+ },
2838
+ "scopes": [
2839
+ "write"
2840
+ ],
2841
+ "annotations": {
2842
+ "readOnly": false,
2843
+ "idempotent": false,
2844
+ "destructive": false
2845
+ },
2846
+ "params": [
2847
+ {
2848
+ "name": "work_state_key",
2849
+ "backendName": "workStateKey",
2850
+ "type": "string",
2851
+ "required": true,
2852
+ "description": "工作状态 key。"
2853
+ }
2854
+ ],
2855
+ "output": {
2856
+ "shape": "object"
2857
+ }
2858
+ },
2859
+ {
2860
+ "name": "zentodo.workstate.current",
2861
+ "domain": "workstate",
2862
+ "action": "current",
2863
+ "description": "调用 /workStateController/getCurrentWorkState。",
2864
+ "http": {
2865
+ "method": "POST",
2866
+ "path": "/workStateController/getCurrentWorkState"
2867
+ },
2868
+ "scopes": [
2869
+ "read"
2870
+ ],
2871
+ "annotations": {
2872
+ "readOnly": true,
2873
+ "idempotent": true,
2874
+ "destructive": false
2875
+ },
2876
+ "params": [],
2877
+ "output": {
2878
+ "shape": "object"
2879
+ }
2880
+ },
2881
+ {
2882
+ "name": "zentodo.workstate.update",
2883
+ "domain": "workstate",
2884
+ "action": "update",
2885
+ "description": "调用 /workStateController/updateWorkState。",
2886
+ "http": {
2887
+ "method": "POST",
2888
+ "path": "/workStateController/updateWorkState"
2889
+ },
2890
+ "scopes": [
2891
+ "write"
2892
+ ],
2893
+ "annotations": {
2894
+ "readOnly": false,
2895
+ "idempotent": false,
2896
+ "destructive": false
2897
+ },
2898
+ "params": [
2899
+ {
2900
+ "name": "work_state_key",
2901
+ "backendName": "workStateKey",
2902
+ "type": "string",
2903
+ "required": true,
2904
+ "description": "工作状态 key。"
2905
+ },
2906
+ {
2907
+ "name": "title",
2908
+ "backendName": "title",
2909
+ "type": "string",
2910
+ "description": "新标题。"
2911
+ },
2912
+ {
2913
+ "name": "note",
2914
+ "backendName": "note",
2915
+ "type": "string",
2916
+ "description": "备注。"
2917
+ }
2918
+ ],
2919
+ "output": {
2920
+ "shape": "object"
2921
+ }
2922
+ },
2923
+ {
2924
+ "name": "zentodo.workstate.list-all",
2925
+ "domain": "workstate",
2926
+ "action": "list-all",
2927
+ "description": "调用 /workStateController/getAllWorkStateByUserId。",
2928
+ "http": {
2929
+ "method": "POST",
2930
+ "path": "/workStateController/getAllWorkStateByUserId"
2931
+ },
2932
+ "scopes": [
2933
+ "read"
2934
+ ],
2935
+ "annotations": {
2936
+ "readOnly": true,
2937
+ "idempotent": true,
2938
+ "destructive": false
2939
+ },
2940
+ "params": [],
2941
+ "output": {
2942
+ "shape": "array"
2943
+ }
2944
+ },
2945
+ {
2946
+ "name": "zentodo.workstate.sync-pull",
2947
+ "domain": "workstate",
2948
+ "action": "sync-pull",
2949
+ "description": "调用 /workStateController/getSyncWorkStateList。",
2950
+ "http": {
2951
+ "method": "POST",
2952
+ "path": "/workStateController/getSyncWorkStateList"
2953
+ },
2954
+ "scopes": [
2955
+ "sync",
2956
+ "read"
2957
+ ],
2958
+ "annotations": {
2959
+ "readOnly": true,
2960
+ "idempotent": false,
2961
+ "destructive": false
2962
+ },
2963
+ "params": [
2964
+ {
2965
+ "name": "client_version",
2966
+ "backendName": "clientVersion",
2967
+ "type": "integer",
2968
+ "required": true,
2969
+ "description": "客户端已知版本号。"
2970
+ }
2971
+ ],
2972
+ "output": {
2973
+ "shape": "array"
2974
+ }
2975
+ },
2976
+ {
2977
+ "name": "zentodo.workstate.sync-push",
2978
+ "domain": "workstate",
2979
+ "action": "sync-push",
2980
+ "description": "调用 /workStateController/putSyncWorkState。",
2981
+ "http": {
2982
+ "method": "POST",
2983
+ "path": "/workStateController/putSyncWorkState",
2984
+ "pragmas": [
2985
+ "stripAutoKeys"
2986
+ ]
2987
+ },
2988
+ "scopes": [
2989
+ "sync",
2990
+ "write"
2991
+ ],
2992
+ "annotations": {
2993
+ "readOnly": false,
2994
+ "idempotent": false,
2995
+ "destructive": false
2996
+ },
2997
+ "params": [
2998
+ {
2999
+ "name": "work_state_key",
3000
+ "backendName": "workStateKey",
3001
+ "type": "string",
3002
+ "description": "已存在的 key。"
3003
+ },
3004
+ {
3005
+ "name": "sync_flag",
3006
+ "backendName": "syncFlag",
3007
+ "type": "string",
3008
+ "default": "M",
3009
+ "description": "同步标记。"
3010
+ }
3011
+ ],
3012
+ "output": {
3013
+ "shape": "scalar"
3014
+ }
3015
+ },
3016
+ {
3017
+ "name": "zentodo.diary.title-list",
3018
+ "domain": "diary",
3019
+ "action": "title-list",
3020
+ "description": "调用 /mdTitleController/getAllMDTitleByUserId。",
3021
+ "http": {
3022
+ "method": "POST",
3023
+ "path": "/mdTitleController/getAllMDTitleByUserId"
3024
+ },
3025
+ "scopes": [
3026
+ "read"
3027
+ ],
3028
+ "annotations": {
3029
+ "readOnly": true,
3030
+ "idempotent": true,
3031
+ "destructive": false
3032
+ },
3033
+ "params": [],
3034
+ "output": {
3035
+ "shape": "array"
3036
+ }
3037
+ },
3038
+ {
3039
+ "name": "zentodo.diary.title-sync-pull",
3040
+ "domain": "diary",
3041
+ "action": "title-sync-pull",
3042
+ "description": "调用 /mdTitleController/getSyncMDTitleList。",
3043
+ "http": {
3044
+ "method": "POST",
3045
+ "path": "/mdTitleController/getSyncMDTitleList"
3046
+ },
3047
+ "scopes": [
3048
+ "sync",
3049
+ "read"
3050
+ ],
3051
+ "annotations": {
3052
+ "readOnly": true,
3053
+ "idempotent": false,
3054
+ "destructive": false
3055
+ },
3056
+ "params": [
3057
+ {
3058
+ "name": "client_version",
3059
+ "backendName": "clientVersion",
3060
+ "type": "integer",
3061
+ "required": true,
3062
+ "description": "客户端已知版本号。"
3063
+ }
3064
+ ],
3065
+ "output": {
3066
+ "shape": "array"
3067
+ }
3068
+ },
3069
+ {
3070
+ "name": "zentodo.diary.title-sync-push",
3071
+ "domain": "diary",
3072
+ "action": "title-sync-push",
3073
+ "description": "调用 /mdTitleController/putSyncMDTitle。",
3074
+ "http": {
3075
+ "method": "POST",
3076
+ "path": "/mdTitleController/putSyncMDTitle",
3077
+ "pragmas": [
3078
+ "stripAutoKeys"
3079
+ ]
3080
+ },
3081
+ "scopes": [
3082
+ "sync",
3083
+ "write"
3084
+ ],
3085
+ "annotations": {
3086
+ "readOnly": false,
3087
+ "idempotent": false,
3088
+ "destructive": false
3089
+ },
3090
+ "params": [
3091
+ {
3092
+ "name": "md_title_key",
3093
+ "backendName": "mdTitleKey",
3094
+ "type": "integer",
3095
+ "description": "已存在的 mdTitleKey。"
3096
+ },
3097
+ {
3098
+ "name": "title",
3099
+ "backendName": "title",
3100
+ "type": "string",
3101
+ "description": "标题。"
3102
+ },
3103
+ {
3104
+ "name": "date",
3105
+ "backendName": "date",
3106
+ "type": "date",
3107
+ "transform": "isoToBackendDate",
3108
+ "description": "日期(ISO)。"
3109
+ },
3110
+ {
3111
+ "name": "sync_flag",
3112
+ "backendName": "syncFlag",
3113
+ "type": "string",
3114
+ "default": "M",
3115
+ "description": "同步标记。"
3116
+ }
3117
+ ],
3118
+ "output": {
3119
+ "shape": "scalar"
3120
+ }
3121
+ },
3122
+ {
3123
+ "name": "zentodo.diary.content-list",
3124
+ "domain": "diary",
3125
+ "action": "content-list",
3126
+ "description": "调用 /mdContentController/getAllMdContentByUserId。",
3127
+ "http": {
3128
+ "method": "POST",
3129
+ "path": "/mdContentController/getAllMdContentByUserId"
3130
+ },
3131
+ "scopes": [
3132
+ "read"
3133
+ ],
3134
+ "annotations": {
3135
+ "readOnly": true,
3136
+ "idempotent": true,
3137
+ "destructive": false
3138
+ },
3139
+ "params": [],
3140
+ "output": {
3141
+ "shape": "array"
3142
+ }
3143
+ },
3144
+ {
3145
+ "name": "zentodo.diary.content-sync-pull",
3146
+ "domain": "diary",
3147
+ "action": "content-sync-pull",
3148
+ "description": "调用 /mdContentController/getSyncMdContentList。",
3149
+ "http": {
3150
+ "method": "POST",
3151
+ "path": "/mdContentController/getSyncMdContentList"
3152
+ },
3153
+ "scopes": [
3154
+ "sync",
3155
+ "read"
3156
+ ],
3157
+ "annotations": {
3158
+ "readOnly": true,
3159
+ "idempotent": false,
3160
+ "destructive": false
3161
+ },
3162
+ "params": [
3163
+ {
3164
+ "name": "client_version",
3165
+ "backendName": "clientVersion",
3166
+ "type": "integer",
3167
+ "required": true,
3168
+ "description": "客户端已知版本号。"
3169
+ }
3170
+ ],
3171
+ "output": {
3172
+ "shape": "array"
3173
+ }
3174
+ },
3175
+ {
3176
+ "name": "zentodo.diary.content-sync-push",
3177
+ "domain": "diary",
3178
+ "action": "content-sync-push",
3179
+ "description": "调用 /mdContentController/putSyncMdContent。",
3180
+ "http": {
3181
+ "method": "POST",
3182
+ "path": "/mdContentController/putSyncMdContent",
3183
+ "pragmas": [
3184
+ "stripAutoKeys"
3185
+ ]
3186
+ },
3187
+ "scopes": [
3188
+ "sync",
3189
+ "write"
3190
+ ],
3191
+ "annotations": {
3192
+ "readOnly": false,
3193
+ "idempotent": false,
3194
+ "destructive": false
3195
+ },
3196
+ "params": [
3197
+ {
3198
+ "name": "md_content_key",
3199
+ "backendName": "mdContentKey",
3200
+ "type": "integer",
3201
+ "description": "已存在的 mdContentKey。"
3202
+ },
3203
+ {
3204
+ "name": "md_title_key",
3205
+ "backendName": "mdTitleKey",
3206
+ "type": "integer",
3207
+ "description": "父标题 mdTitleKey。"
3208
+ },
3209
+ {
3210
+ "name": "content",
3211
+ "backendName": "content",
3212
+ "type": "string",
3213
+ "description": "正文。"
3214
+ },
3215
+ {
3216
+ "name": "sync_flag",
3217
+ "backendName": "syncFlag",
3218
+ "type": "string",
3219
+ "default": "M",
3220
+ "description": "同步标记。"
3221
+ }
3222
+ ],
3223
+ "output": {
3224
+ "shape": "scalar"
3225
+ }
3226
+ },
3227
+ {
3228
+ "name": "zentodo.mindmap.sync-push",
3229
+ "domain": "mindmap",
3230
+ "action": "sync-push",
3231
+ "description": "调用 /gdMetaController/putSyncGDMeta。",
3232
+ "http": {
3233
+ "method": "POST",
3234
+ "path": "/gdMetaController/putSyncGDMeta",
3235
+ "pragmas": [
3236
+ "stripAutoKeys"
3237
+ ]
3238
+ },
3239
+ "scopes": [
3240
+ "sync",
3241
+ "write"
3242
+ ],
3243
+ "annotations": {
3244
+ "readOnly": false,
3245
+ "idempotent": false,
3246
+ "destructive": false
3247
+ },
3248
+ "params": [
3249
+ {
3250
+ "name": "gd_meta_key",
3251
+ "backendName": "gdMetaKey",
3252
+ "type": "integer",
3253
+ "description": "已存在的 gdMetaKey。"
3254
+ },
3255
+ {
3256
+ "name": "parent_key",
3257
+ "backendName": "parentKey",
3258
+ "type": "integer",
3259
+ "description": "父节点 key。"
3260
+ },
3261
+ {
3262
+ "name": "content",
3263
+ "backendName": "content",
3264
+ "type": "string",
3265
+ "description": "节点内容。"
3266
+ },
3267
+ {
3268
+ "name": "sync_flag",
3269
+ "backendName": "syncFlag",
3270
+ "type": "string",
3271
+ "default": "M",
3272
+ "description": "同步标记。"
3273
+ }
3274
+ ],
3275
+ "output": {
3276
+ "shape": "scalar"
3277
+ }
3278
+ },
3279
+ {
3280
+ "name": "zentodo.mindmap.list-all",
3281
+ "domain": "mindmap",
3282
+ "action": "list-all",
3283
+ "description": "调用 /gdMetaController/getAllGDMetaByUserId。",
3284
+ "http": {
3285
+ "method": "POST",
3286
+ "path": "/gdMetaController/getAllGDMetaByUserId"
3287
+ },
3288
+ "scopes": [
3289
+ "read"
3290
+ ],
3291
+ "annotations": {
3292
+ "readOnly": true,
3293
+ "idempotent": true,
3294
+ "destructive": false
3295
+ },
3296
+ "params": [],
3297
+ "output": {
3298
+ "shape": "array"
3299
+ }
3300
+ },
3301
+ {
3302
+ "name": "zentodo.mindmap.sync-pull",
3303
+ "domain": "mindmap",
3304
+ "action": "sync-pull",
3305
+ "description": "调用 /gdMetaController/getSyncGDMetaList。",
3306
+ "http": {
3307
+ "method": "POST",
3308
+ "path": "/gdMetaController/getSyncGDMetaList"
3309
+ },
3310
+ "scopes": [
3311
+ "sync",
3312
+ "read"
3313
+ ],
3314
+ "annotations": {
3315
+ "readOnly": true,
3316
+ "idempotent": false,
3317
+ "destructive": false
3318
+ },
3319
+ "params": [
3320
+ {
3321
+ "name": "client_version",
3322
+ "backendName": "clientVersion",
3323
+ "type": "integer",
3324
+ "required": true,
3325
+ "description": "客户端已知版本号。"
3326
+ }
3327
+ ],
3328
+ "output": {
3329
+ "shape": "array"
3330
+ }
3331
+ },
3332
+ {
3333
+ "name": "zentodo.reward.store-sync-push",
3334
+ "domain": "reward",
3335
+ "action": "store-sync-push",
3336
+ "description": "调用 /rewardStoreController/putSyncRewardStore。",
3337
+ "http": {
3338
+ "method": "POST",
3339
+ "path": "/rewardStoreController/putSyncRewardStore",
3340
+ "pragmas": [
3341
+ "stripAutoKeys"
3342
+ ]
3343
+ },
3344
+ "scopes": [
3345
+ "sync",
3346
+ "write"
3347
+ ],
3348
+ "annotations": {
3349
+ "readOnly": false,
3350
+ "idempotent": false,
3351
+ "destructive": false
3352
+ },
3353
+ "params": [
3354
+ {
3355
+ "name": "reward_key",
3356
+ "backendName": "rewardKey",
3357
+ "type": "integer",
3358
+ "description": "已存在的 rewardKey。"
3359
+ },
3360
+ {
3361
+ "name": "name",
3362
+ "backendName": "rewardName",
3363
+ "type": "string",
3364
+ "description": "奖励名称。"
3365
+ },
3366
+ {
3367
+ "name": "cost",
3368
+ "backendName": "rewardCost",
3369
+ "type": "integer",
3370
+ "description": "兑换所需奖励币。"
3371
+ },
3372
+ {
3373
+ "name": "sync_flag",
3374
+ "backendName": "syncFlag",
3375
+ "type": "string",
3376
+ "default": "M",
3377
+ "description": "同步标记。"
3378
+ }
3379
+ ],
3380
+ "output": {
3381
+ "shape": "scalar"
3382
+ }
3383
+ },
3384
+ {
3385
+ "name": "zentodo.reward.store-list",
3386
+ "domain": "reward",
3387
+ "action": "store-list",
3388
+ "description": "调用 /rewardStoreController/getAllRewardStoreByUserId。",
3389
+ "http": {
3390
+ "method": "POST",
3391
+ "path": "/rewardStoreController/getAllRewardStoreByUserId"
3392
+ },
3393
+ "scopes": [
3394
+ "read"
3395
+ ],
3396
+ "annotations": {
3397
+ "readOnly": true,
3398
+ "idempotent": true,
3399
+ "destructive": false
3400
+ },
3401
+ "params": [],
3402
+ "output": {
3403
+ "shape": "array"
3404
+ }
3405
+ },
3406
+ {
3407
+ "name": "zentodo.reward.store-sync-pull",
3408
+ "domain": "reward",
3409
+ "action": "store-sync-pull",
3410
+ "description": "调用 /rewardStoreController/getSyncRewardStoreList。",
3411
+ "http": {
3412
+ "method": "POST",
3413
+ "path": "/rewardStoreController/getSyncRewardStoreList"
3414
+ },
3415
+ "scopes": [
3416
+ "sync",
3417
+ "read"
3418
+ ],
3419
+ "annotations": {
3420
+ "readOnly": true,
3421
+ "idempotent": false,
3422
+ "destructive": false
3423
+ },
3424
+ "params": [
3425
+ {
3426
+ "name": "client_version",
3427
+ "backendName": "clientVersion",
3428
+ "type": "integer",
3429
+ "required": true,
3430
+ "description": "客户端已知版本号。"
3431
+ }
3432
+ ],
3433
+ "output": {
3434
+ "shape": "array"
3435
+ }
3436
+ },
3437
+ {
3438
+ "name": "zentodo.reward.store-update-file",
3439
+ "domain": "reward",
3440
+ "action": "store-update-file",
3441
+ "description": "调用 /rewardStoreController/updateRewardStoreFile。",
3442
+ "http": {
3443
+ "method": "POST",
3444
+ "path": "/rewardStoreController/updateRewardStoreFile"
3445
+ },
3446
+ "scopes": [
3447
+ "write"
3448
+ ],
3449
+ "annotations": {
3450
+ "readOnly": false,
3451
+ "idempotent": false,
3452
+ "destructive": false
3453
+ },
3454
+ "params": [
3455
+ {
3456
+ "name": "reward_id",
3457
+ "backendName": "rewardId",
3458
+ "type": "integer",
3459
+ "required": true,
3460
+ "description": "奖励 id。"
3461
+ },
3462
+ {
3463
+ "name": "file",
3464
+ "source": "file",
3465
+ "type": "file",
3466
+ "required": true,
3467
+ "description": "文件。"
3468
+ }
3469
+ ],
3470
+ "output": {
3471
+ "shape": "object"
3472
+ }
3473
+ },
3474
+ {
3475
+ "name": "zentodo.reward.record-sync-push",
3476
+ "domain": "reward",
3477
+ "action": "record-sync-push",
3478
+ "description": "调用 /rewardRecordController/putSyncRewardRecord。",
3479
+ "http": {
3480
+ "method": "POST",
3481
+ "path": "/rewardRecordController/putSyncRewardRecord",
3482
+ "pragmas": [
3483
+ "stripAutoKeys"
3484
+ ]
3485
+ },
3486
+ "scopes": [
3487
+ "sync",
3488
+ "write"
3489
+ ],
3490
+ "annotations": {
3491
+ "readOnly": false,
3492
+ "idempotent": false,
3493
+ "destructive": false
3494
+ },
3495
+ "params": [
3496
+ {
3497
+ "name": "record_key",
3498
+ "backendName": "recordKey",
3499
+ "type": "integer",
3500
+ "description": "已存在的记录 key。"
3501
+ },
3502
+ {
3503
+ "name": "reward_key",
3504
+ "backendName": "rewardKey",
3505
+ "type": "integer",
3506
+ "description": "关联的奖励 key。"
3507
+ },
3508
+ {
3509
+ "name": "cost",
3510
+ "backendName": "cost",
3511
+ "type": "integer",
3512
+ "description": "消耗的奖励币。"
3513
+ },
3514
+ {
3515
+ "name": "sync_flag",
3516
+ "backendName": "syncFlag",
3517
+ "type": "string",
3518
+ "default": "M",
3519
+ "description": "同步标记。"
3520
+ }
3521
+ ],
3522
+ "output": {
3523
+ "shape": "scalar"
3524
+ }
3525
+ },
3526
+ {
3527
+ "name": "zentodo.reward.record-list",
3528
+ "domain": "reward",
3529
+ "action": "record-list",
3530
+ "description": "调用 /rewardRecordController/getAllRewardRecordByUserId。",
3531
+ "http": {
3532
+ "method": "POST",
3533
+ "path": "/rewardRecordController/getAllRewardRecordByUserId"
3534
+ },
3535
+ "scopes": [
3536
+ "read"
3537
+ ],
3538
+ "annotations": {
3539
+ "readOnly": true,
3540
+ "idempotent": true,
3541
+ "destructive": false
3542
+ },
3543
+ "params": [],
3544
+ "output": {
3545
+ "shape": "array"
3546
+ }
3547
+ },
3548
+ {
3549
+ "name": "zentodo.reward.record-sync-pull",
3550
+ "domain": "reward",
3551
+ "action": "record-sync-pull",
3552
+ "description": "调用 /rewardRecordController/getSyncRewardRecordList。",
3553
+ "http": {
3554
+ "method": "POST",
3555
+ "path": "/rewardRecordController/getSyncRewardRecordList"
3556
+ },
3557
+ "scopes": [
3558
+ "sync",
3559
+ "read"
3560
+ ],
3561
+ "annotations": {
3562
+ "readOnly": true,
3563
+ "idempotent": false,
3564
+ "destructive": false
3565
+ },
3566
+ "params": [
3567
+ {
3568
+ "name": "client_version",
3569
+ "backendName": "clientVersion",
3570
+ "type": "integer",
3571
+ "required": true,
3572
+ "description": "客户端已知版本号。"
3573
+ }
3574
+ ],
3575
+ "output": {
3576
+ "shape": "array"
3577
+ }
3578
+ },
3579
+ {
3580
+ "name": "zentodo.fasttime.sync-push",
3581
+ "domain": "fasttime",
3582
+ "action": "sync-push",
3583
+ "description": "调用 /fastTimeRecordController/putSyncFastTimeRecord。",
3584
+ "http": {
3585
+ "method": "POST",
3586
+ "path": "/fastTimeRecordController/putSyncFastTimeRecord",
3587
+ "pragmas": [
3588
+ "stripAutoKeys"
3589
+ ]
3590
+ },
3591
+ "scopes": [
3592
+ "sync",
3593
+ "write"
3594
+ ],
3595
+ "annotations": {
3596
+ "readOnly": false,
3597
+ "idempotent": false,
3598
+ "destructive": false
3599
+ },
3600
+ "params": [
3601
+ {
3602
+ "name": "record_key",
3603
+ "backendName": "recordKey",
3604
+ "type": "integer",
3605
+ "description": "已存在的记录 key。"
3606
+ },
3607
+ {
3608
+ "name": "title",
3609
+ "backendName": "title",
3610
+ "type": "string",
3611
+ "description": "标题。"
3612
+ },
3613
+ {
3614
+ "name": "duration_sec",
3615
+ "backendName": "duration",
3616
+ "type": "integer",
3617
+ "description": "时长(秒)。"
3618
+ },
3619
+ {
3620
+ "name": "sync_flag",
3621
+ "backendName": "syncFlag",
3622
+ "type": "string",
3623
+ "default": "M",
3624
+ "description": "同步标记。"
3625
+ }
3626
+ ],
3627
+ "output": {
3628
+ "shape": "scalar"
3629
+ }
3630
+ },
3631
+ {
3632
+ "name": "zentodo.fasttime.list-all",
3633
+ "domain": "fasttime",
3634
+ "action": "list-all",
3635
+ "description": "调用 /fastTimeRecordController/getAllFastTimeByUserId。",
3636
+ "http": {
3637
+ "method": "POST",
3638
+ "path": "/fastTimeRecordController/getAllFastTimeByUserId"
3639
+ },
3640
+ "scopes": [
3641
+ "read"
3642
+ ],
3643
+ "annotations": {
3644
+ "readOnly": true,
3645
+ "idempotent": true,
3646
+ "destructive": false
3647
+ },
3648
+ "params": [],
3649
+ "output": {
3650
+ "shape": "array"
3651
+ }
3652
+ },
3653
+ {
3654
+ "name": "zentodo.fasttime.sync-pull",
3655
+ "domain": "fasttime",
3656
+ "action": "sync-pull",
3657
+ "description": "调用 /fastTimeRecordController/getSyncFastTimeRecordList。",
3658
+ "http": {
3659
+ "method": "POST",
3660
+ "path": "/fastTimeRecordController/getSyncFastTimeRecordList"
3661
+ },
3662
+ "scopes": [
3663
+ "sync",
3664
+ "read"
3665
+ ],
3666
+ "annotations": {
3667
+ "readOnly": true,
3668
+ "idempotent": false,
3669
+ "destructive": false
3670
+ },
3671
+ "params": [
3672
+ {
3673
+ "name": "client_version",
3674
+ "backendName": "clientVersion",
3675
+ "type": "integer",
3676
+ "required": true,
3677
+ "description": "客户端已知版本号。"
3678
+ }
3679
+ ],
3680
+ "output": {
3681
+ "shape": "array"
3682
+ }
3683
+ },
3684
+ {
3685
+ "name": "zentodo.wheel.sync-push",
3686
+ "domain": "wheel",
3687
+ "action": "sync-push",
3688
+ "description": "调用 /wheelViewController/putSyncWheelView。",
3689
+ "http": {
3690
+ "method": "POST",
3691
+ "path": "/wheelViewController/putSyncWheelView",
3692
+ "pragmas": [
3693
+ "stripAutoKeys"
3694
+ ]
3695
+ },
3696
+ "scopes": [
3697
+ "sync",
3698
+ "write"
3699
+ ],
3700
+ "annotations": {
3701
+ "readOnly": false,
3702
+ "idempotent": false,
3703
+ "destructive": false
3704
+ },
3705
+ "params": [
3706
+ {
3707
+ "name": "wheel_key",
3708
+ "backendName": "wheelKey",
3709
+ "type": "integer",
3710
+ "description": "已存在的 key。"
3711
+ },
3712
+ {
3713
+ "name": "title",
3714
+ "backendName": "title",
3715
+ "type": "string",
3716
+ "description": "标题。"
3717
+ },
3718
+ {
3719
+ "name": "sync_flag",
3720
+ "backendName": "syncFlag",
3721
+ "type": "string",
3722
+ "default": "M",
3723
+ "description": "同步标记。"
3724
+ }
3725
+ ],
3726
+ "output": {
3727
+ "shape": "scalar"
3728
+ }
3729
+ },
3730
+ {
3731
+ "name": "zentodo.wheel.list-all",
3732
+ "domain": "wheel",
3733
+ "action": "list-all",
3734
+ "description": "调用 /wheelViewController/getAllWheelByUserId。",
3735
+ "http": {
3736
+ "method": "POST",
3737
+ "path": "/wheelViewController/getAllWheelByUserId"
3738
+ },
3739
+ "scopes": [
3740
+ "read"
3741
+ ],
3742
+ "annotations": {
3743
+ "readOnly": true,
3744
+ "idempotent": true,
3745
+ "destructive": false
3746
+ },
3747
+ "params": [],
3748
+ "output": {
3749
+ "shape": "array"
3750
+ }
3751
+ },
3752
+ {
3753
+ "name": "zentodo.wheel.sync-pull",
3754
+ "domain": "wheel",
3755
+ "action": "sync-pull",
3756
+ "description": "调用 /wheelViewController/getSyncWheelViewList。",
3757
+ "http": {
3758
+ "method": "POST",
3759
+ "path": "/wheelViewController/getSyncWheelViewList"
3760
+ },
3761
+ "scopes": [
3762
+ "sync",
3763
+ "read"
3764
+ ],
3765
+ "annotations": {
3766
+ "readOnly": true,
3767
+ "idempotent": false,
3768
+ "destructive": false
3769
+ },
3770
+ "params": [
3771
+ {
3772
+ "name": "client_version",
3773
+ "backendName": "clientVersion",
3774
+ "type": "integer",
3775
+ "required": true,
3776
+ "description": "客户端已知版本号。"
3777
+ }
3778
+ ],
3779
+ "output": {
3780
+ "shape": "array"
3781
+ }
3782
+ },
3783
+ {
3784
+ "name": "zentodo.invite.list-all",
3785
+ "domain": "invite",
3786
+ "action": "list-all",
3787
+ "description": "调用 /inviteController/getAllInviteByUserId。",
3788
+ "http": {
3789
+ "method": "POST",
3790
+ "path": "/inviteController/getAllInviteByUserId"
3791
+ },
3792
+ "scopes": [
3793
+ "read"
3794
+ ],
3795
+ "annotations": {
3796
+ "readOnly": true,
3797
+ "idempotent": true,
3798
+ "destructive": false
3799
+ },
3800
+ "params": [],
3801
+ "output": {
3802
+ "shape": "array"
3803
+ }
3804
+ },
3805
+ {
3806
+ "name": "zentodo.app.latest-version",
3807
+ "domain": "app",
3808
+ "action": "latest-version",
3809
+ "description": "调用 /appUpdateController/getLastestVersionCode。",
3810
+ "http": {
3811
+ "method": "POST",
3812
+ "path": "/appUpdateController/getLastestVersionCode"
3813
+ },
3814
+ "scopes": [
3815
+ "read"
3816
+ ],
3817
+ "annotations": {
3818
+ "readOnly": true,
3819
+ "idempotent": true,
3820
+ "destructive": false
3821
+ },
3822
+ "params": [],
3823
+ "output": {
3824
+ "shape": "scalar"
3825
+ }
3826
+ },
3827
+ {
3828
+ "name": "zentodo.app.update-info",
3829
+ "domain": "app",
3830
+ "action": "update-info",
3831
+ "description": "调用 /appUpdateController/getLastestAppUpdateItem。",
3832
+ "http": {
3833
+ "method": "POST",
3834
+ "path": "/appUpdateController/getLastestAppUpdateItem"
3835
+ },
3836
+ "scopes": [
3837
+ "read"
3838
+ ],
3839
+ "annotations": {
3840
+ "readOnly": true,
3841
+ "idempotent": true,
3842
+ "destructive": false
3843
+ },
3844
+ "params": [
3845
+ {
3846
+ "name": "version_code",
3847
+ "backendName": "versionCode",
3848
+ "type": "integer",
3849
+ "required": true,
3850
+ "description": "当前 versionCode。"
3851
+ }
3852
+ ],
3853
+ "output": {
3854
+ "shape": "object"
3855
+ }
3856
+ },
3857
+ {
3858
+ "name": "zentodo.app.service-time",
3859
+ "domain": "app",
3860
+ "action": "service-time",
3861
+ "description": "调用 /serviceController/getServiceTime。",
3862
+ "http": {
3863
+ "method": "POST",
3864
+ "path": "/serviceController/getServiceTime"
3865
+ },
3866
+ "scopes": [
3867
+ "read"
3868
+ ],
3869
+ "annotations": {
3870
+ "readOnly": true,
3871
+ "idempotent": true,
3872
+ "destructive": false
3873
+ },
3874
+ "params": [],
3875
+ "output": {
3876
+ "shape": "scalar"
3877
+ }
3878
+ },
3879
+ {
3880
+ "name": "zentodo.pay.price",
3881
+ "domain": "pay",
3882
+ "action": "price",
3883
+ "description": "调用 /xzbbPriceController/getXzbbPrice。",
3884
+ "http": {
3885
+ "method": "POST",
3886
+ "path": "/xzbbPriceController/getXzbbPrice"
3887
+ },
3888
+ "scopes": [
3889
+ "read"
3890
+ ],
3891
+ "annotations": {
3892
+ "readOnly": true,
3893
+ "idempotent": true,
3894
+ "destructive": false
3895
+ },
3896
+ "params": [
3897
+ {
3898
+ "name": "id",
3899
+ "backendName": "id",
3900
+ "type": "integer",
3901
+ "description": "价格 id 过滤。"
3902
+ }
3903
+ ],
3904
+ "output": {
3905
+ "shape": "array"
3906
+ }
3907
+ },
3908
+ {
3909
+ "name": "zentodo.pay.wechat-order",
3910
+ "domain": "pay",
3911
+ "action": "wechat-order",
3912
+ "description": "调用 /payController/getWechatOrderInfo。需要 scope \"pay\"。",
3913
+ "http": {
3914
+ "method": "POST",
3915
+ "path": "/payController/getWechatOrderInfo"
3916
+ },
3917
+ "scopes": [
3918
+ "pay"
3919
+ ],
3920
+ "annotations": {
3921
+ "readOnly": false,
3922
+ "idempotent": false,
3923
+ "destructive": false
3924
+ },
3925
+ "params": [
3926
+ {
3927
+ "name": "product_id",
3928
+ "backendName": "productId",
3929
+ "type": "integer",
3930
+ "required": true,
3931
+ "description": "商品 id。"
3932
+ }
3933
+ ],
3934
+ "output": {
3935
+ "shape": "object"
3936
+ }
3937
+ },
3938
+ {
3939
+ "name": "zentodo.pay.alipay-order",
3940
+ "domain": "pay",
3941
+ "action": "alipay-order",
3942
+ "description": "调用 /payController/getAlipayOrderInfo。需要 scope \"pay\"。",
3943
+ "http": {
3944
+ "method": "POST",
3945
+ "path": "/payController/getAlipayOrderInfo"
3946
+ },
3947
+ "scopes": [
3948
+ "pay"
3949
+ ],
3950
+ "annotations": {
3951
+ "readOnly": false,
3952
+ "idempotent": false,
3953
+ "destructive": false
3954
+ },
3955
+ "params": [
3956
+ {
3957
+ "name": "product_id",
3958
+ "backendName": "productId",
3959
+ "type": "integer",
3960
+ "required": true,
3961
+ "description": "商品 id。"
3962
+ }
3963
+ ],
3964
+ "output": {
3965
+ "shape": "scalar"
3966
+ }
3967
+ },
3968
+ {
3969
+ "name": "zentodo.pay.coupon",
3970
+ "domain": "pay",
3971
+ "action": "coupon",
3972
+ "description": "调用 /couponController/getCouponByCouponId。",
3973
+ "http": {
3974
+ "method": "POST",
3975
+ "path": "/couponController/getCouponByCouponId"
3976
+ },
3977
+ "scopes": [
3978
+ "read"
3979
+ ],
3980
+ "annotations": {
3981
+ "readOnly": true,
3982
+ "idempotent": true,
3983
+ "destructive": false
3984
+ },
3985
+ "params": [
3986
+ {
3987
+ "name": "coupon_id",
3988
+ "backendName": "couponId",
3989
+ "type": "string",
3990
+ "required": true,
3991
+ "description": "优惠券 id。"
3992
+ }
3993
+ ],
3994
+ "output": {
3995
+ "shape": "array"
3996
+ }
3997
+ },
3998
+ {
3999
+ "name": "zentodo.sync.server-version",
4000
+ "domain": "sync",
4001
+ "action": "server-version",
4002
+ "description": "调用 /tableRecorderController/getTableRecordLatestVersion。",
4003
+ "http": {
4004
+ "method": "POST",
4005
+ "path": "/tableRecorderController/getTableRecordLatestVersion"
4006
+ },
4007
+ "scopes": [
4008
+ "sync",
4009
+ "read"
4010
+ ],
4011
+ "annotations": {
4012
+ "readOnly": true,
4013
+ "idempotent": true,
4014
+ "destructive": false
4015
+ },
4016
+ "params": [
4017
+ {
4018
+ "name": "table_name",
4019
+ "backendName": "tableName",
4020
+ "type": "string",
4021
+ "required": true,
4022
+ "description": "表名(如 task、project)。"
4023
+ }
4024
+ ],
4025
+ "output": {
4026
+ "shape": "scalar"
4027
+ }
4028
+ },
4029
+ {
4030
+ "name": "zentodo.sync.recorder-list",
4031
+ "domain": "sync",
4032
+ "action": "recorder-list",
4033
+ "description": "调用 /tableRecorderController/getAllTableRecorderByUserId。",
4034
+ "http": {
4035
+ "method": "POST",
4036
+ "path": "/tableRecorderController/getAllTableRecorderByUserId"
4037
+ },
4038
+ "scopes": [
4039
+ "sync",
4040
+ "read"
4041
+ ],
4042
+ "annotations": {
4043
+ "readOnly": true,
4044
+ "idempotent": true,
4045
+ "destructive": false
4046
+ },
4047
+ "params": [],
4048
+ "output": {
4049
+ "shape": "array"
4050
+ }
4051
+ }
4052
+ ]