1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
|
<?php return [
'version' => '1.0',
'info' => ['style' => 'RPC', 'product' => 'appstream-center', 'version' => '2021-02-20'],
'directories' => [
[
'children' => ['ClientUserLogout', 'GetLoginToken', 'RefreshLoginToken', 'GetStsToken', 'FindIdpListByLoginIdentifier'],
'type' => 'directory',
'title' => '客户端登录认证',
'id' => 289934,
],
],
'components' => [
'schemas' => [],
],
'apis' => [
'ClientUserLogout' => [
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'Anonymous' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'LoginToken',
'in' => 'query',
'schema' => ['description' => '登录Token。', 'type' => 'string', 'required' => false, 'example' => 'v22369636c721ba6b3ddb1683341016775c3f63e4d0e78f120f9a0544ed826b7af7daf747c402f0d0730b52f451b70****'],
],
[
'name' => 'SessionId',
'in' => 'query',
'schema' => ['description' => '登录的会话ID。', 'type' => 'string', 'required' => false, 'example' => '597e869d-ea14-4b83-9490-714f68****'],
],
[
'name' => 'ClientId',
'in' => 'query',
'schema' => ['description' => '客户端ID。', 'type' => 'string', 'required' => false, 'example' => 'eac19bef-1e45-4190-a03a-4ea74b****'],
],
[
'name' => 'OfficeSiteId',
'in' => 'query',
'schema' => ['description' => '办公网络ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hongkong+dir-643067****'],
],
[
'name' => 'ProfileRegion',
'in' => 'query',
'schema' => [
'description' => '账号所属站点。',
'type' => 'string',
'required' => false,
'enumValueTitles' => ['ap_southeast_1' => '国际站', 'cn_hangzhou' => '国内站'],
'example' => 'cn_hangzhou',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => '返回数据结构。',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '1CBAFFAB-B697-4049-A9B1-67E1FC5F****'],
],
],
],
],
'title' => '客户端退出登录',
'summary' => '客户端退出登录,销毁登录凭证。',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1CBAFFAB-B697-4049-A9B1-67E1FC5F****\\"\\n}","type":"json"}]',
],
'FindIdpListByLoginIdentifier' => [
'summary' => '用于客户端查询办公网络或企业标识符的登录配置信息。',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'Anonymous' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '140090',
'abilityTreeNodes' => ['FEATUREappstreamingV87T4P'],
],
'parameters' => [
[
'name' => 'ClientId',
'in' => 'formData',
'schema' => ['description' => '自定义的客户端唯一ID。', 'type' => 'string', 'required' => false, 'example' => '370b56f8-2812-4b6c-bfa6-2560791c****'],
],
[
'name' => 'ClientOS',
'in' => 'formData',
'schema' => ['description' => '客户端操作系统。', 'type' => 'string', 'required' => false, 'example' => 'windows_\\"Windows 10 Enterprise\\" 10.0 (Build 14393)'],
],
[
'name' => 'ClientVersion',
'in' => 'formData',
'schema' => ['description' => '应用的客户端版本号。', 'type' => 'string', 'required' => false, 'example' => '2.0.1-D-20211008.101607'],
],
[
'name' => 'ClientChannel',
'in' => 'formData',
'schema' => ['description' => '自定义的客户端标识,用于区分不同的应用。', 'type' => 'string', 'required' => false, 'example' => 'pc'],
],
[
'name' => 'Uuid',
'in' => 'formData',
'schema' => ['description' => '客户端唯一标识。若使用无影客户端,可在客户端登录界面的关于对话框中查看该参数。', 'type' => 'string', 'required' => false, 'example' => '2943802884B27030B6759F9132B2****'],
],
[
'name' => 'LoginIdentifier',
'in' => 'formData',
'schema' => ['description' => '企业标识符。', 'type' => 'string', 'required' => true, 'example' => 'Aliyun123***'],
],
[
'name' => 'SupportTypes',
'in' => 'formData',
'style' => 'repeatList',
'schema' => [
'description' => '支持的登录类型。',
'type' => 'array',
'items' => [
'description' => '支持的登录类型。',
'type' => 'string',
'required' => false,
'enumValueTitles' => ['ad' => 'AD域账号', 'simple' => '便捷账号'],
'example' => 'ad',
],
'required' => false,
'maxItems' => 100,
],
],
[
'name' => 'AvailableFeatures',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => '客户端支持的特性。',
'type' => 'object',
'required' => false,
'additionalProperties' => [
'type' => 'string',
'description' => '客户端支持的特性。',
'enumValueTitles' => ['Business' => '支持商业版'],
'example' => '{\\"Business\\":\\"1\\"}',
],
],
],
[
'name' => 'ClientIp',
'in' => 'query',
'schema' => ['description' => '客户端IP。', 'type' => 'string', 'required' => false, 'example' => '22.21.XX.XX'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'AD2D0761-1FE5-549D-B169-D3F8D19C****'],
'IdpInfos' => [
'description' => '身份源信息。',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'IdpId' => ['description' => '用户所属身份源配置ID。', 'type' => 'string', 'example' => 'idp-hlyexfvwert9m8****'],
'IdpName' => ['description' => '用户身份源名称。', 'type' => 'string', 'example' => 'DingTalk'],
'SsoProtocol' => [
'description' => 'SSO协议类型。',
'type' => 'string',
'enumValueTitles' => ['OAuth2' => 'OAuth2协议', 'SAML' => 'SAML协议', 'OIDC' => 'OIDC协议'],
'example' => 'SAML',
],
'IdpProvider' => ['description' => '应用所属的资源提供者。', 'type' => 'string', 'example' => 'DingTalk'],
'SsoServiceUrl' => ['description' => 'SSO服务地址。', 'type' => 'string', 'example' => 'https://e1iwdlcn.aliyunidaas.com/login/app/app_****/saml2/sso'],
'Cookies' => ['description' => '用于使用Cookie方式实现应用内免登时告知客户端需要写入哪些Cookie到应用内。', 'type' => 'string', 'example' => 'null'],
'AccountType' => [
'description' => '账号类型。',
'type' => 'string',
'enumValueTitles' => ['ad' => 'AD域账号', 'simple' => '便捷账号'],
'example' => 'simple',
],
'JumpSwitch' => ['description' => '是否跳转到浏览器登录。', 'type' => 'string', 'example' => 'true'],
'IdpNameEN' => ['description' => '英文名称。', 'type' => 'string', 'example' => 'wy-simple'],
],
'description' => '',
],
],
'OfficeSiteInfo' => [
'description' => '查询到的办公网络信息。',
'type' => 'object',
'properties' => [
'OfficeSiteId' => ['description' => '办公网络ID。', 'type' => 'string', 'example' => 'cn-shanghai+dir-448204****'],
'SsoServiceUrl' => ['description' => 'SSO服务地址。', 'type' => 'string', 'example' => 'https://e1iwdlcn.aliyunidaas.com/login/app/app_****/saml2/sso'],
'RegionId' => ['description' => '地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'],
'AccessType' => [
'description' => '允许的客户端网络连接方式。',
'type' => 'string',
'enumValueTitles' => ['INTERNET' => '互联网访问', 'VPC' => '专网访问', 'ANY' => '都允许'],
'example' => 'INTERNET',
],
'ProviderId' => ['description' => '所属账号的BID。', 'type' => 'string', 'example' => '26842'],
'PreferVpcAccess' => ['title' => '是否优先专网', 'type' => 'boolean'],
'VpcAccessAddress' => ['title' => '专网接入地址', 'type' => 'string'],
],
],
'TenantAliasInfo' => [
'description' => '企业标识符信息。',
'type' => 'object',
'properties' => [
'TenantAlias' => ['description' => '企业标识符。', 'type' => 'string', 'example' => 'Or09****'],
'AccessType' => [
'description' => '允许的客户端网络连接方式。',
'type' => 'string',
'enumValueTitles' => ['INTERNET' => '互联网访问', 'VPC' => '专网访问', 'ANY' => '都允许'],
'example' => 'INTERNET',
],
'PreferVpcAccess' => ['title' => '是否优先专网', 'type' => 'boolean'],
'VpcAccessAddress' => ['title' => '专网接入地址', 'type' => 'string'],
'IsLoginByCipherParam' => ['type' => 'string'],
],
],
'ProfileRegion' => [
'description' => '账号所属站点。',
'type' => 'string',
'enumValueTitles' => ['ap_southeast_1' => '国际站', 'cn_hangzhou' => '中国站'],
'example' => 'cn_hangzhou',
],
'PopRegionConfig' => [
'description' => '中心服务请求地址,用于服务高可用场景。',
'type' => 'object',
'additionalProperties' => ['type' => 'string', 'description' => '登录服务地址。', 'example' => 'cn-shanghai'],
],
],
],
],
],
'title' => '查询登录配置',
'changeSet' => [
['createdAt' => '2024-12-13T02:07:38.000Z', 'description' => '请求参数发生变更'],
['createdAt' => '2024-11-02T06:16:44.000Z', 'description' => '请求参数发生变更、响应参数发生变更'],
['createdAt' => '2022-06-22T06:10:33.000Z', 'description' => 'OpenAPI 下线'],
],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"AD2D0761-1FE5-549D-B169-D3F8D19C****\\",\\n \\"IdpInfos\\": [\\n {\\n \\"IdpId\\": \\"idp-hlyexfvwert9m8****\\",\\n \\"IdpName\\": \\"DingTalk\\",\\n \\"SsoProtocol\\": \\"SAML\\",\\n \\"IdpProvider\\": \\"DingTalk\\",\\n \\"SsoServiceUrl\\": \\"https://e1iwdlcn.aliyunidaas.com/login/app/app_****/saml2/sso\\",\\n \\"Cookies\\": \\"null\\",\\n \\"AccountType\\": \\"simple\\",\\n \\"JumpSwitch\\": \\"true\\",\\n \\"IdpNameEN\\": \\"wy-simple\\"\\n }\\n ],\\n \\"OfficeSiteInfo\\": {\\n \\"OfficeSiteId\\": \\"cn-shanghai+dir-448204****\\",\\n \\"SsoServiceUrl\\": \\"https://e1iwdlcn.aliyunidaas.com/login/app/app_****/saml2/sso\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"AccessType\\": \\"INTERNET\\",\\n \\"ProviderId\\": \\"26842\\",\\n \\"PreferVpcAccess\\": true,\\n \\"VpcAccessAddress\\": \\"\\"\\n },\\n \\"TenantAliasInfo\\": {\\n \\"TenantAlias\\": \\"Or09****\\",\\n \\"AccessType\\": \\"INTERNET\\",\\n \\"PreferVpcAccess\\": true,\\n \\"VpcAccessAddress\\": \\"\\",\\n \\"IsLoginByCipherParam\\": \\"\\"\\n },\\n \\"ProfileRegion\\": \\"cn_hangzhou\\",\\n \\"PopRegionConfig\\": {\\n \\"key\\": \\"cn-shanghai\\"\\n }\\n}","type":"json"}]',
],
'GetLoginToken' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'Anonymous' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '125244',
'abilityTreeNodes' => ['FEATUREappstreamingV87T4P'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => '地域 ID。', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'cn-shanghai'],
],
[
'name' => 'ClientId',
'in' => 'query',
'schema' => ['description' => '客户端生成的唯一ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '05967f80-6f51-46cb-a27c-****'],
],
[
'name' => 'DirectoryId',
'in' => 'query',
'schema' => ['description' => '办公网络ID,与`OfficeSiteId`含义相同。建议停止使用`DirectoryId`,改为使用`OfficeSiteId`。`DirectoryId`和`OfficeSiteId`只能填写一个,不可同时填写。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'cn-beijing+dir-j9dd****'],
],
[
'name' => 'OfficeSiteId',
'in' => 'query',
'schema' => ['description' => '办公网络ID。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'cn-beijing+dir-j9dd****'],
],
[
'name' => 'SessionId',
'in' => 'query',
'schema' => ['description' => '登录的会话ID。'."\n"
."\n"
.'若未绑定虚拟MFA设备或者未开启客户端二次认证,则不需要填写SessionId。'."\n"
.'若已绑定虚拟MFA设备或者已开启客户端二次认证,则ADPassword之后的登录认证阶段需要填写SessionId。可从便捷账号验证(即GetLoginToken请求处于ADPassword阶段)的返回结果中获取SessionId。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'c6f3cd91-65fc-4c7b-b189-2a73da0****'],
],
[
'name' => 'CurrentStage',
'in' => 'query',
'schema' => ['description' => '当前登录认证阶段,依次为:'."\n"
."\n"
.'1. `ADPassword`:验证用户信息。当使用便捷账号或者AD账号的账密认证时填写此值。'."\n"
.'1. `MFABind`:绑定虚拟MFA设备。'."\n"
.'1. `MFAVerify`:验证虚拟MFA设备生成的安全码。'."\n"
.'1. `TokenVerify`:客户端二次认证。'."\n"
.'1. `ChangePassword`:修改用户密码。'."\n"
.'1. `KeepAliveVerify`: KeepAliveToken有效时,可用于换取LoginToken。'."\n"
.'1. `PhoneVerifyTenantSelect`: 手机号登录场景下,用于选择其中一个企业ID登录。'."\n"
.'1. `VerifyForRisk`: 识别登录风险后的核身校验。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'SsoTokenLogin'],
],
[
'name' => 'EndUserId',
'in' => 'query',
'schema' => ['description' => '便捷账号或AD域账号的用户名。当`CurrentStage`为`ADPassword`时必填。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'user01'],
],
[
'name' => 'Password',
'in' => 'query',
'schema' => ['description' => '便捷账号或AD域账号的密码。当`CurrentStage`为`ADPassword`时必填。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'Admin@1234****', 'maxLength' => 500, 'minLength' => 1],
],
[
'name' => 'EncryptedPassword',
'in' => 'query',
'schema' => ['description' => '已加密密码。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '04d7****8e90bb0484fc;gJ1GLca1vQRRqQbRvByU0A==;5kOWZE7AtbQhki+4LAo69A=='],
],
[
'name' => 'OldPassword',
'in' => 'query',
'schema' => ['description' => '旧密码。当`CurrentStage`为`ChangePassword`时必填。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'Admin@1234****'."\n"],
],
[
'name' => 'NewPassword',
'in' => 'query',
'schema' => ['description' => '新密码。当`CurrentStage`为`ChangePassword`时必填。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'Admin@1234****'."\n"],
],
[
'name' => 'AuthenticationCode',
'in' => 'query',
'schema' => ['description' => '虚拟MFA设备生成的安全码。当`CurrentStage`为`MFAVerify`时必填。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '182901'],
],
[
'name' => 'SsoSessionToken',
'in' => 'query',
'schema' => ['description' => 'SSO场景下的登录令牌。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '04d707a6-fb23-44a7-aae7-8e90****'],
],
[
'name' => 'ClientOS',
'in' => 'query',
'schema' => ['description' => '客户端操作系统。', 'type' => 'string', 'required' => false, 'example' => 'windows_\\"Windows 10 Pro\\" 10.0 (Build 22631)'],
],
[
'name' => 'ClientVersion',
'in' => 'query',
'schema' => ['description' => '客户端版本。', 'type' => 'string', 'required' => false, 'example' => '7.3.0-20240619.143924'],
],
[
'name' => 'TokenCode',
'in' => 'query',
'schema' => ['description' => '若已在无影云电脑企业版控制台开启客户端二次认证,且识别到当前登录用户有风险时,会发送该二次认证验证码到终端用户邮箱。当`CurrentStage`为`TokenVerify`时必填。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '1234***'],
],
[
'name' => 'UmidToken',
'in' => 'query',
'schema' => ['description' => '幂等校验参数。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '04d707a6-fb23-44a7-aae7-8e90bb04****'],
],
[
'name' => 'FingerPrintData',
'in' => 'query',
'schema' => ['description' => '指纹信息,目前暂时停止支持。', 'type' => 'string', 'required' => false, 'example' => 'null'],
],
[
'name' => 'KeepAlive',
'in' => 'query',
'schema' => ['description' => '是否保持登录。', 'type' => 'boolean', 'required' => false, 'example' => 'true'],
],
[
'name' => 'KeepAliveToken',
'in' => 'query',
'schema' => ['description' => '用于保持登录的凭证(Token),在登录成功且用户开启了保持登录选项后,接口会返回KeepAliveToken,在KeepAliveToken有效期内可以调用GetLoginToken接口并将CurrentStage设为KeepAliveVerify来换取登录凭证(LoginToken)。当CurrentStage为KeepAliveVerify时,KeepAliveToken必填。', 'type' => 'string', 'required' => false, 'example' => '00ugamMAoO1+u1MlhmgCeZJ75q094x3H/4kg7ZaTI3f/joVTVPIpJgfv9JFkPLNxnQjblrvsByNas08mc6FtVWvQPOE68fqmt6QMM4UbRtahm8luxEXvicF58qSPXW1hxOtV/Ev6d92VBz2Bck/N4CYyjD0iLocfN8jkBnt231****'],
],
[
'name' => 'Uuid',
'in' => 'query',
'schema' => ['description' => '客户端唯一标识。若使用无影客户端,可在客户端登录界面的关于对话框中查看该参数。', 'type' => 'string', 'required' => false, 'example' => 'C50973691A6D2BE23F2CDD73B85B****'],
],
[
'name' => 'ImageUrl',
'in' => 'query',
'schema' => ['description' => '图片URL。'."\n"
."\n"
.'> 该参数已停用。', 'type' => 'string', 'required' => false, 'example' => 'null'],
],
[
'name' => 'EncryptedFingerPrintData',
'in' => 'query',
'schema' => ['description' => '指纹信息。'."\n"
."\n"
.'> 该参数已停用。', 'type' => 'string', 'required' => false, 'example' => 'null'],
],
[
'name' => 'EncryptedKey',
'in' => 'query',
'schema' => ['description' => '加密的密钥ID。', 'type' => 'string', 'required' => false, 'example' => '4d7****8e90bb0484fc'],
],
[
'name' => 'ClientType',
'in' => 'query',
'schema' => ['description' => '客户端的类型。', 'type' => 'string', 'required' => false, 'example' => 'windows'],
],
[
'name' => 'SsoExtendsCookies',
'in' => 'query',
'schema' => ['description' => 'SSO 登录的Cookie,应用内免登使用。', 'type' => 'string', 'required' => false, 'example' => 'null'],
],
[
'name' => 'LoginName',
'in' => 'query',
'schema' => ['description' => '已停用。', 'type' => 'string', 'required' => false, 'example' => 'null'],
],
[
'name' => 'LoginIdentifier',
'in' => 'query',
'schema' => ['description' => '企业标识符。', 'type' => 'string', 'required' => false, 'example' => 'Fe04****'],
],
[
'name' => 'IdpId',
'in' => 'query',
'schema' => ['description' => '登录认证服务ID,通过接口[FindIdpListByLoginIdentifier](~~FindIdpListByLoginIdentifier~~)获取。', 'type' => 'string', 'required' => false, 'example' => 'idp-iwntrlbb98q7v****'],
],
[
'name' => 'NetworkType',
'in' => 'query',
'schema' => [
'description' => '客户端的网络连接类型。',
'type' => 'string',
'required' => false,
'enumValueTitles' => ['INTERNET' => '互联网', 'VPC' => '企业专网'],
'example' => 'INTERNET',
],
],
[
'name' => 'Phone',
'in' => 'query',
'schema' => ['description' => '手机号码,手机号登录场景下使用。'."\n"
.'> 国际站账号不支持。', 'type' => 'string', 'required' => false, 'example' => '1822727****'],
],
[
'name' => 'PhoneVerifyCode',
'in' => 'query',
'schema' => ['description' => '手机验证码,手机号登录场景下使用。'."\n"
.'> 国际站账号不支持。', 'type' => 'string', 'required' => false, 'example' => '321123'],
],
[
'name' => 'AvailableFeatures',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => '客户端支持的特性。',
'type' => 'object',
'required' => false,
'additionalProperties' => [
'type' => 'string',
'enumValueTitles' => ['Business' => '支持商业版'],
'description' => '客户端支持的特性。',
'example' => '{\\"Business\\":\\"1\\"}',
],
],
],
[
'name' => 'MfaType',
'in' => 'query',
'schema' => [
'description' => 'MFA校验的类型。',
'type' => 'string',
'required' => false,
'enumValueTitles' => ['TOTP' => '手机令牌', 'PHONE' => '手机验证码', 'EMAIL' => '邮箱'],
'example' => 'TOTP',
],
],
[
'name' => 'ClientName',
'in' => 'query',
'schema' => ['description' => '客户端名称。', 'type' => 'string', 'required' => false, 'example' => 'HONOR-BRN-HXXB'],
],
[
'name' => 'ProfileRegion',
'in' => 'query',
'schema' => [
'description' => '租户所属站点。',
'type' => 'string',
'required' => false,
'enumValueTitles' => ['ap_southeast_1' => '国际站', 'cn_hangzhou' => '中国站'],
'example' => 'cn_hangzhou',
],
],
[
'name' => 'Channel',
'in' => 'query',
'schema' => ['type' => 'string'],
],
[
'name' => 'AreaSite',
'in' => 'query',
'schema' => ['type' => 'string'],
],
[
'name' => 'CipherEndUserId',
'in' => 'query',
'schema' => ['type' => 'string'],
],
[
'name' => 'CipherPassword',
'in' => 'query',
'schema' => ['type' => 'string'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => '返回信息集合。',
'type' => 'object',
'properties' => [
'Email' => ['description' => '用户邮箱。在登录后随LoginToken返回。'."\n"
."\n"
.'- 如果是便捷账号,返回创建便捷账号时设置的邮箱。'."\n"
.'- 如果是AD域账号,返回以下形式:用户名@AD域名。', 'type' => 'string', 'example' => 'alice***@example.com'],
'Secret' => ['description' => '绑定虚拟MFA设备时的密钥。用于`MFABind`阶段。'."\n"
."\n"
.'> 关于各认证阶段的详细信息,参见本接口请求参数`CurrentStage`的参数说明。', 'type' => 'string', 'example' => '4JZNSDHDM3T6AZ4G2O5OWXBLLE4P****'],
'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'EEA72491-B731-53D6-83ED-209769D6****'],
'EndUserId' => ['description' => '便捷账号用户名或AD用户名。', 'type' => 'string', 'example' => 'alice'],
'LoginToken' => ['description' => '登录凭证。', 'type' => 'string', 'example' => 'v185fdd7f6d39fa7861981639366085772e150a390a5bb7b43c4e62440d94fc392b945770e1596cebe90085ce0af4d****'],
'NextStage' => ['description' => '预期的下一阶段。例如,若管理员在无影云电脑企业版控制台开启了MFA认证,则当用户名密码认证通过后(即`ADPassword`阶段后),该参数会返回`MFAVerify`,表示此时需要做MFA认证。'."\n"
."\n"
.'> 关于各认证阶段的详细信息,参见本接口请求参数`CurrentStage`的参数说明。', 'type' => 'string', 'example' => 'MFABind'],
'QrCodePng' => ['description' => '绑定虚拟MFA设备时的密钥二维码。使用Base64编码。可以为空,用于`MFABind`阶段。'."\n"
."\n"
.'> 关于各认证阶段的详细信息,参见本接口请求参数`CurrentStage`的参数说明。', 'type' => 'string', 'example' => '5OCLLKKOJU5HPBX66H3QCTWY******'."\n"],
'Label' => ['description' => '便捷账号属性。如果是AD域账号,则返回空值。', 'type' => 'string', 'example' => 'test:wuying'."\n"],
'SessionId' => ['description' => '会话ID。 仅在同一会话第一次调用GetLoginToken时返回。需要多次认证时,后续的阶段需要传入该参数。', 'type' => 'string', 'example' => 'cc15c91c-821b-4edd-9af2-6df66cc****'],
'Phone' => ['description' => '便捷账号的手机号。如果是AD域账号,则返回空值。', 'type' => 'string', 'example' => '1826717****'],
'TenantId' => ['description' => '阿里云账号ID。硬件终端识别使用。', 'type' => 'integer', 'format' => 'int64', 'example' => '13747924304****'],
'KeepAliveToken' => ['description' => '用于保持登录的凭证(Token),在登录成功且用户开启了保持登录选项后,接口会返回`KeepAliveToken`。若未开启保持登录选项,则返回空值。', 'type' => 'string', 'example' => '006YwvYMsesWWsDBZnVB+Wq9AvJDVIqOY3YCktvtb7+KxMb3ClnNlV8+l/knhZYrXUmeP06IzkjF+IgcZ3vZKOyMprDyFHjCy1r27FRE/U7+geWCl8iQ+yF8GaCRHfJEkC2+ROs93HkT4tfHxyY1J8W7O7ZQGUC/cdCvm+cCP6FIy73IUuPuVR6PcKYXIp***'],
'Industry' => ['description' => '> 该参数不对外开放使用。', 'type' => 'string', 'example' => 'edu'],
'Props' => [
'description' => '> 该参数不对外开放使用。',
'type' => 'object',
'additionalProperties' => ['type' => 'string', 'description' => '> 该参数不对外开放使用。', 'example' => '{\'environment\': \'online\', \'sourceClientType\': \'WINDOWS'],
],
'WyId' => ['description' => '用户全局唯一ID。', 'type' => 'string', 'example' => '0aba1403b337a***'],
'VpcRegionId' => ['description' => 'VPC地域ID,用于专网登录。', 'type' => 'string', 'example' => 'cn-beijing'],
'WindowDisplayMode' => ['description' => '> 该参数不对外开放使用。', 'type' => 'string', 'example' => 'Windowed'],
'AccountType' => ['description' => '账号类型, 便捷账号或者AD域账号。', 'type' => 'string', 'example' => 'ad'],
'TenantInfos' => [
'description' => '企业ID信息,在手机号登录场景下,一个手机号可能开通了多个企业ID的登录能力,此时需要传入CurrentState:PhoneVerifyTenantSelect选择其中一个企业ID进行登录。',
'type' => 'array',
'items' => [
'description' => '企业ID信息。',
'type' => 'object',
'properties' => [
'TenantAlias' => ['description' => '企业ID。', 'type' => 'string', 'example' => 'Up830***'],
'AccessType' => [
'description' => '客户端的网络连接类型。',
'type' => 'string',
'enumValueTitles' => ['INTERNET' => '互联网', 'VPC' => '企业专网', 'ANY' => '都允许'],
'example' => 'INTERNET',
],
],
],
],
'TenantAlias' => ['description' => '登录的企业标识符名称。', 'type' => 'string', 'example' => 'Rq201***'],
'AccessType' => ['description' => '客户端的网络连接类型。', 'type' => 'string', 'example' => 'INTERNET'],
'OfficeSites' => [
'description' => 'AD登录后,该AD对应的办公网络信息。',
'type' => 'array',
'items' => ['description' => 'AD登录后,该AD对应的办公网络ID。', 'type' => 'string', 'example' => '[\'cn-beijing+dir-096920***\', \'cn-shenzhen+dir-2546908***\']'],
],
'IdpId' => ['description' => '用户所属身份源配置ID。', 'type' => 'string', 'example' => 'idp-7ttvs4ove8bo5***'],
'AdDomain' => ['description' => 'AD办公网络地址。', 'type' => 'string', 'example' => 'easthp***.com'],
'RiskVerifyInfo' => [
'description' => '登录风险识别相关信息,如检测到风险,需要通过返回的邮箱或者手机号进行核身。'."\n"
.'通过返回的手机号或邮箱,调用`SendVerifyCode`接口发送验证码,然后调用`GetLoginToken`接口指定`CurrentStage`参数为`VerifyForRisk`进行核身。',
'type' => 'object',
'properties' => [
'Email' => ['description' => '用于身份验证的邮箱地址。', 'type' => 'string', 'example' => 'ppas***@aliyun.com'],
'LastLockDuration' => ['description' => '锁定时间。单位:秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '12000'],
'Locked' => ['description' => '用户是否被锁定。', 'type' => 'boolean', 'example' => 'true'],
'Phone' => ['description' => '用于核身的手机号。', 'type' => 'string', 'example' => '138****1111'],
],
],
'PasswordStrategy' => [
'description' => '密码策略。',
'type' => 'object',
'properties' => [
'TenantPasswordLength' => ['description' => '要求的密码长度。', 'type' => 'integer', 'format' => 'int32', 'example' => '12'],
'TenantAlternativeChars' => [
'description' => '要求的密码内容。',
'type' => 'array',
'items' => [
'description' => '要求的密码内容。',
'type' => 'string',
'enumValueTitles' => ['NUMBER' => '数字', 'SPECIAL_CHAR' => '特殊字符', 'LOWER_LETTER' => '小写字母', 'UPPER_LETTER' => '大写字母'],
'example' => 'UPPER_LETTER',
],
],
],
],
'Reason' => [
'description' => '登录失败的原因。',
'type' => 'string',
'enumValueTitles' => ['ResetPassword' => '密码已重置', 'PasswordExpired' => '需要修改密码'],
'example' => 'PasswordExpired',
],
'MfaTypeList' => [
'description' => '触发MFA校验时,可选的MFA校验类型。',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Name' => [
'description' => 'MFA校验类型。',
'type' => 'string',
'enumValueTitles' => ['TOTP' => '手机令牌', 'PHONE' => '手机验证码', 'EMAIL' => '邮箱'],
'example' => 'PHONE',
],
'Stage' => [
'description' => '选定MFA类型后,对应CurrentStage参数的值。',
'type' => 'string',
'enumValueTitles' => ['MFAVerifyV1' => '执行MFA校验', 'MFABindV1' => '绑定MFA设备'],
'example' => 'MFABindV1',
],
],
'description' => '',
],
],
'NickName' => ['type' => 'string', 'description' => ''],
],
],
],
],
'title' => '获取登录凭证',
'summary' => '通过企业标识符获取登录凭证。',
'changeSet' => [
['createdAt' => '2025-04-27T03:27:39.000Z', 'description' => '响应参数发生变更'],
['createdAt' => '2025-02-27T12:04:12.000Z', 'description' => '请求参数发生变更'],
['createdAt' => '2024-12-11T03:48:32.000Z', 'description' => '请求参数发生变更'],
['createdAt' => '2024-12-06T09:32:21.000Z', 'description' => '请求参数发生变更'],
['createdAt' => '2024-12-06T09:27:27.000Z', 'description' => '请求参数发生变更'],
['createdAt' => '2024-11-02T06:19:13.000Z', 'description' => '请求参数发生变更、响应参数发生变更'],
['createdAt' => '2022-06-22T08:13:40.000Z', 'description' => '请求参数发生变更'],
['createdAt' => '2022-04-28T15:40:09.000Z', 'description' => 'OpenAPI 下线'],
],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Email\\": \\"alice***@example.com\\",\\n \\"Secret\\": \\"4JZNSDHDM3T6AZ4G2O5OWXBLLE4P****\\",\\n \\"RequestId\\": \\"EEA72491-B731-53D6-83ED-209769D6****\\",\\n \\"EndUserId\\": \\"alice\\",\\n \\"LoginToken\\": \\"v185fdd7f6d39fa7861981639366085772e150a390a5bb7b43c4e62440d94fc392b945770e1596cebe90085ce0af4d****\\",\\n \\"NextStage\\": \\"MFABind\\",\\n \\"QrCodePng\\": \\"5OCLLKKOJU5HPBX66H3QCTWY******\\\\n\\",\\n \\"Label\\": \\"test:wuying\\\\n\\",\\n \\"SessionId\\": \\"cc15c91c-821b-4edd-9af2-6df66cc****\\",\\n \\"Phone\\": \\"1826717****\\",\\n \\"TenantId\\": 0,\\n \\"KeepAliveToken\\": \\"006YwvYMsesWWsDBZnVB+Wq9AvJDVIqOY3YCktvtb7+KxMb3ClnNlV8+l/knhZYrXUmeP06IzkjF+IgcZ3vZKOyMprDyFHjCy1r27FRE/U7+geWCl8iQ+yF8GaCRHfJEkC2+ROs93HkT4tfHxyY1J8W7O7ZQGUC/cdCvm+cCP6FIy73IUuPuVR6PcKYXIp***\\",\\n \\"Industry\\": \\"edu\\",\\n \\"Props\\": {\\n \\"key\\": \\"{\'environment\': \'online\', \'sourceClientType\': \'WINDOWS\\"\\n },\\n \\"WyId\\": \\"0aba1403b337a***\\",\\n \\"VpcRegionId\\": \\"cn-beijing\\",\\n \\"WindowDisplayMode\\": \\"Windowed\\",\\n \\"AccountType\\": \\"ad\\",\\n \\"TenantInfos\\": [\\n {\\n \\"TenantAlias\\": \\"Up830***\\",\\n \\"AccessType\\": \\"INTERNET\\"\\n }\\n ],\\n \\"TenantAlias\\": \\"Rq201***\\",\\n \\"AccessType\\": \\"INTERNET\\",\\n \\"OfficeSites\\": [\\n \\"[\'cn-beijing+dir-096920***\', \'cn-shenzhen+dir-2546908***\']\\"\\n ],\\n \\"IdpId\\": \\"idp-7ttvs4ove8bo5***\\",\\n \\"AdDomain\\": \\"easthp***.com\\",\\n \\"RiskVerifyInfo\\": {\\n \\"Email\\": \\"ppas***@aliyun.com\\",\\n \\"LastLockDuration\\": 12000,\\n \\"Locked\\": true,\\n \\"Phone\\": \\"138****1111\\"\\n },\\n \\"PasswordStrategy\\": {\\n \\"TenantPasswordLength\\": 12,\\n \\"TenantAlternativeChars\\": [\\n \\"UPPER_LETTER\\"\\n ]\\n },\\n \\"Reason\\": \\"PasswordExpired\\",\\n \\"MfaTypeList\\": [\\n {\\n \\"Name\\": \\"PHONE\\",\\n \\"Stage\\": \\"MFABindV1\\"\\n }\\n ],\\n \\"NickName\\": \\"\\"\\n}","type":"json"}]',
],
'GetStsToken' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'Anonymous' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREappstreamingV87T4P'],
'autoTest' => false,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'ClientId',
'in' => 'formData',
'schema' => ['description' => '客户端生成的唯一ID。', 'type' => 'string', 'required' => false, 'example' => 'eac19bef-1e45-4190-a03a-4ea74b69****'],
],
[
'name' => 'ClientOS',
'in' => 'formData',
'schema' => ['description' => '客户端操作系统。', 'type' => 'string', 'required' => false, 'example' => 'windows_\\"Windows 10 Enterprise\\" 10.0 (Build 14393)'],
],
[
'name' => 'ClientVersion',
'in' => 'formData',
'schema' => ['description' => '客户端版本号。', 'type' => 'string', 'required' => false, 'example' => '6.3.0-R-20231106.210000'],
],
[
'name' => 'ClientIp',
'in' => 'formData',
'schema' => ['description' => '客户端IP地址。', 'type' => 'string', 'required' => false, 'example' => '22.21.2.**'],
],
[
'name' => 'Uuid',
'in' => 'formData',
'schema' => ['description' => '设备UUID。', 'type' => 'string', 'required' => false, 'example' => '2943802884B27030B6759F9132B2****'],
],
[
'name' => 'AuthCode',
'in' => 'formData',
'schema' => ['description' => '授权码。该授权码有效期为3分钟,且无论校验成功或失败,只能被使用一次。当为一个用户生成多个授权码时,只有最后一次生成的有效。', 'type' => 'string', 'required' => true, 'example' => 'e4e169bea1cc48e8afac53**********'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => '返回数据集合。',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'CCF92035-6231-5ABB-930E-1E003C32****'],
'StsTokenModel' => [
'description' => '临时身份凭证的详细信息。',
'type' => 'object',
'properties' => [
'SessionId' => ['description' => '登录的会话ID。', 'type' => 'string', 'example' => 'be4be09e-cd00-4b4c-add7-11b4d8****'],
'StsToken' => ['description' => '临时身份凭证。', 'type' => 'string', 'example' => 'sts****'],
'TenantId' => ['description' => '租户ID(阿里云账号UID)。', 'type' => 'integer', 'format' => 'int64', 'example' => '105552640689****'],
'LoginToken' => ['type' => 'string'],
'EndUserId' => ['type' => 'string'],
'ProfileRegion' => ['type' => 'string'],
],
],
],
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => '获取临时身份凭证',
'summary' => '获取无影STS Token(临时身份凭证)。',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CCF92035-6231-5ABB-930E-1E003C32****\\",\\n \\"StsTokenModel\\": {\\n \\"SessionId\\": \\"be4be09e-cd00-4b4c-add7-11b4d8****\\",\\n \\"StsToken\\": \\"sts****\\",\\n \\"TenantId\\": 0,\\n \\"LoginToken\\": \\"\\",\\n \\"EndUserId\\": \\"\\",\\n \\"ProfileRegion\\": \\"\\"\\n }\\n}","type":"json"}]',
],
'RefreshLoginToken' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'Anonymous' => [],
],
],
'systemTags' => [
'operationType' => 'none',
'abilityTreeCode' => '128463',
'abilityTreeNodes' => ['FEATUREappstreamingV87T4P'],
],
'parameters' => [
[
'name' => 'ClientId',
'in' => 'query',
'schema' => ['description' => '客户端生成的唯一ID,参考`UUID`。该参数非敏感字段,无需加密。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'f4a0dc8e-1702-4728-9a60-95b27a35****'."\n"],
],
[
'name' => 'SessionId',
'in' => 'query',
'schema' => ['description' => '登录的会话ID。', 'type' => 'string', 'required' => true, 'docRequired' => false, 'example' => '6442b2fd-ed3e-423a-8e6e-352d26a4****'],
],
[
'name' => 'EndUserId',
'in' => 'query',
'schema' => ['description' => '用户名。', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'alice'],
],
[
'name' => 'LoginToken',
'in' => 'query',
'schema' => ['description' => '登录凭证。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'v1046341d8d4e2f05c4aa168196009613594aaf451499bfc75e54699efa7230bc968e1debb1fa4063b01e5d327b467****'],
],
[
'name' => 'OfficeSiteId',
'in' => 'query',
'schema' => ['description' => '办公网络ID。非办公网络登录场景下为空。', 'type' => 'string', 'required' => false, 'example' => 'cn-shenzhen+dir-436909****'],
],
[
'name' => 'LoginIdentifier',
'in' => 'query',
'schema' => ['description' => '企业标识符。', 'type' => 'string', 'required' => false, 'example' => 'Alibaba****'],
],
[
'name' => 'ClientType',
'in' => 'query',
'schema' => [
'description' => '客户端类型。',
'type' => 'string',
'required' => false,
'enumValueTitles' => ['html5' => 'Web客户端', 'android' => 'Android客户端', 'windows' => 'Windows客户端', 'ios' => 'iOS客户端', 'macos' => 'macOS客户端'],
'example' => 'windows',
],
],
[
'name' => 'Uuid',
'in' => 'query',
'schema' => ['description' => '登录使用的设备UUID。', 'type' => 'string', 'required' => false, 'example' => '2943802884B27030B6759F9132B2****'],
],
[
'name' => 'ProfileRegion',
'in' => 'query',
'schema' => [
'description' => '账号所属站点。',
'type' => 'string',
'required' => false,
'enumValueTitles' => ['ap_southeast_1' => '国际站', 'cn_hangzhou' => '中国站'],
'example' => 'cn_hangzhou',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '419F31B9-1FDF-5644-ABA3-D00026FA****'],
'LoginToken' => ['description' => '登录凭证。', 'type' => 'string', 'example' => 'v12369636c721ba6b3ddb1683341016775c3f63e4d0e78f120f9a0544ed826b7af7daf747c402f0d0730b52f451b70****'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"419F31B9-1FDF-5644-ABA3-D00026FA****\\",\\n \\"LoginToken\\": \\"v12369636c721ba6b3ddb1683341016775c3f63e4d0e78f120f9a0544ed826b7af7daf747c402f0d0730b52f451b70****\\"\\n}","type":"json"}]',
'title' => '刷新登录凭证',
'summary' => '刷新登录凭证。',
'description' => '登录凭证(LoginToken)的有效期为8小时。如果在8小时内终端用户没有退出客户端,客户端需要重新刷新登录凭证。',
'changeSet' => [],
'ramActions' => [],
],
],
'endpoints' => [
['regionId' => 'cn-shanghai', 'regionName' => '华东2(上海)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'appstream-center.cn-shanghai.aliyuncs.com', 'endpoint' => 'appstream-center.cn-shanghai.aliyuncs.com', 'vpc' => 'appstream-center-intl.vpc-proxy.aliyuncs.com'],
['regionId' => 'ap-southeast-1', 'regionName' => '新加坡', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'appstream-center.ap-southeast-1.aliyuncs.com', 'endpoint' => 'appstream-center.ap-southeast-1.aliyuncs.com', 'vpc' => 'appstream-center-intl.vpc-proxy.aliyuncs.com'],
],
'errorCodes' => [
['code' => 'AddRemoveAccountIsSame', 'message' => 'The same account is to be added and to be removed at the same time.', 'http_code' => 400, 'description' => '添加移除包含相同账号。'],
['code' => 'AppCenterImageId.Missing', 'message' => 'The AppCenter ImageId is missing.', 'http_code' => 400, 'description' => '参数ImageId缺失'],
['code' => 'AppCenterImageInfo.NotFound', 'message' => 'The AppCenter ImageInfo is not found.', 'http_code' => 400, 'description' => '镜像信息找不到'],
['code' => 'AppDeploymentInfo.NotFound', 'message' => 'The AppDeploymentInfo is not found.', 'http_code' => 400, 'description' => '应用信息未找到'],
['code' => 'AppInstallation.StartFailed', 'message' => 'Start app installation failed.', 'http_code' => 400, 'description' => '启动应用安装失败。'],
['code' => 'AppInstallationStatus.IsFailed', 'message' => 'App installation failed.', 'http_code' => 400, 'description' => '应用安装状态失败。'],
['code' => 'AppInstanceGroupAttributeModify.Failed', 'message' => 'Failed to modify the delivery group attribute.', 'http_code' => 400, 'description' => '修改交付组属性失败'],
['code' => 'AppInstanceGroupIdIsNull', 'message' => 'The AppInstanceGroupId is null.', 'http_code' => 400, 'description' => '交付组ID是空值'],
['code' => 'AppInstanceGroupImageCreate.Failed', 'message' => 'Failed to create an image from the debugging app instance group.', 'http_code' => 400, 'description' => '基于调试交付组创建镜像失败。'],
['code' => 'AppInstanceGroupNotFound', 'message' => 'The AppInstanceGroup is not found.', 'http_code' => 400, 'description' => '交付组未找到'],
['code' => 'AppInstanceGroupNotFound', 'message' => 'The specified AppInstanceGroup not found.', 'http_code' => 400, 'description' => '交付组找不到'],
['code' => 'AppType.ValueNotSupported', 'message' => 'The category of the app is not supported.', 'http_code' => 400, 'description' => '不支持该应用类别。'],
['code' => 'AuthorizeFailed', 'message' => 'Authorize failed, please check your EndUserId and Password.', 'http_code' => 400, 'description' => '您的用户名或密码不正确。'],
['code' => 'BillingItem.InsertFailure', 'message' => 'Failed to insert the billing item.', 'http_code' => 400, 'description' => '无法插入计费项。'],
['code' => 'BizTypeNotMatch', 'message' => 'The bizType and image do not match.', 'http_code' => 400, 'description' => '输入BizType和镜像不匹配。'],
['code' => 'BuilderImage.StartTaskFailed', 'message' => 'Failed to start the builder image task.', 'http_code' => 400, 'description' => '启动镜像制作任务失败。'],
['code' => 'CallBack.PayOrderCallbackFailed', 'message' => 'Failed to lock the order.', 'http_code' => 400, 'description' => '无法锁定订单。'],
['code' => 'CashBookInsufficient', 'message' => 'No payment method is specified for your account. We recommend that you add a payment method or add funds to the prepayment balance.', 'http_code' => 400, 'description' => '余额不足'],
['code' => 'CheckStock.Failed', 'message' => 'Failed to check the stock.', 'http_code' => 400, 'description' => '检查库存失败'],
['code' => 'ConnectLdapServer.Failed', 'message' => 'Failed to connect to the LDAP server. Please check the configuration.', 'http_code' => 400, 'description' => '连接LDAP服务器失败,请检查配置是否正确。'],
['code' => 'CreateAppInstanceGroup.Failed', 'message' => 'Failed to create the app instance group.', 'http_code' => 400, 'description' => '创建交付组失败'],
['code' => 'CreateDesktopImageRecord.Failed', 'message' => 'Create cloud computer image failed.', 'http_code' => 400, 'description' => '创建云电脑镜像失败。'],
['code' => 'DeleteTemplate.Failed', 'message' => 'Delete template failed.', 'http_code' => 400, 'description' => '删除模板失败。'],
['code' => 'DesktopInstance.NotFound', 'message' => 'The cloud computer instance does not exist.', 'http_code' => 400, 'description' => '云电脑实例不存在。'],
['code' => 'ExceedAddAccountQuota', 'message' => 'The maximum number of account addition is reached.', 'http_code' => 400, 'description' => '添加账号达到上限。'],
['code' => 'ExceedAppAuthUserQuota', 'message' => 'The authorized user quota of the app is exceeded.', 'http_code' => 400, 'description' => '授权用户超过上限'],
['code' => 'ExceedAppInstanceGroupQuota', 'message' => 'The app instance group quota is exceeded.', 'http_code' => 400, 'description' => '交付组超过上限'],
['code' => 'ExceedBuilderQuota', 'message' => 'The maximum number of builders is reached.', 'http_code' => 400, 'description' => 'Builder数量达到了上限。'],
['code' => 'ExceedImageQuota', 'message' => 'The maximum number of images is reached.', 'http_code' => 400, 'description' => '镜像数量达到了上限。'],
['code' => 'ExceedPoolNodeAmountQuota', 'message' => 'The pool node amount quota is exceeded.', 'http_code' => 400, 'description' => '资源节点数量超过购买上限'],
['code' => 'ExceedRemoveAccountQuota', 'message' => 'The maximum number of account removal is reached.', 'http_code' => 400, 'description' => '移除账号达到上限。'],
['code' => 'Forbidden.NoPermission', 'message' => 'You are not authorized to access this page.', 'http_code' => 403, 'description' => '您没有权限访问当前页面。'],
['code' => 'ForbiddenNoRealNameAuthentication', 'message' => 'Operation failed. The user has not completed the real-name authentication.', 'http_code' => 400, 'description' => '尚未通过实名认证'],
['code' => 'ForbiddenNoRealNameAuthentication', 'message' => 'Forbidden by user real name authentication status.', 'http_code' => 400, 'description' => '没有实名认证'],
['code' => 'GetLoginTokenError', 'message' => 'Failed to get the login token.', 'http_code' => 400, 'description' => '无法获取登录令牌。'],
['code' => 'Image.CreateModeInvalid', 'message' => 'The creation mode of this task is invalid.', 'http_code' => 400, 'description' => '任务创建模式无效。'],
['code' => 'Image.NotExist', 'message' => 'The image does not exist.', 'http_code' => 400, 'description' => '镜像不存在。'],
['code' => 'ImageCreateByInstance.TaskExist', 'message' => 'The image task of instance creation already exists.', 'http_code' => 400, 'description' => '实例创建镜像任务已存在。'],
['code' => 'ImageDeleteFailed.HasSharedImage', 'message' => 'The shared image is not allowed to be deleted.', 'http_code' => 400, 'description' => '共享镜像不允许删除。'],
['code' => 'ImageDeleteFailed.NotAllow', 'message' => 'The image is not allowed to be deleted.', 'http_code' => 400, 'description' => '镜像不允许删除。'],
['code' => 'ImageDeleteFailed.NotAllowCommunityParent', 'message' => 'The parent image of a community image is not allowed to be deleted.', 'http_code' => 400, 'description' => '社区镜像父镜像不允许删除。'],
['code' => 'ImageDeleteFailed.NotAllowSharedImage', 'message' => 'The shared image is not allowed to be deleted.', 'http_code' => 400, 'description' => '共享镜像不允许删除。'],
['code' => 'ImageDistribute.ImageNotSupport', 'message' => 'The image does not support region distribution.', 'http_code' => 400, 'description' => '镜像不支持分发,如:加密镜像。'],
['code' => 'ImageDistribute.RepeatedDistribution', 'message' => 'This image has been distributed to this region.', 'http_code' => 400, 'description' => '镜像已经分发过该地域。'],
['code' => 'ImageDistribute.TargetDistributeRegionListEmpty', 'message' => 'The target distribution region list is empty.', 'http_code' => 400, 'description' => '分发地域配置为空。'],
['code' => 'ImageDistribute.Undistributed', 'message' => 'The image has not been distributed to any region.', 'http_code' => 400, 'description' => '镜像分发无拷贝源地址,检查镜像分发地域是否已经清空。'],
['code' => 'ImageIsNull', 'message' => 'The image does not exist.', 'http_code' => 400, 'description' => '镜像不存在'],
['code' => 'ImageNotAllowDelete', 'message' => 'The image cannot be deleted, because shared cloud computers already exist.', 'http_code' => 400, 'description' => '镜像不能删除,已经存在共享型云电脑资源。'],
['code' => 'ImageRegion.NotConfigured', 'message' => 'The image does not have any region configuration.', 'http_code' => 400, 'description' => '镜像无任何地域配置信息。'],
['code' => 'ImageRegionDistribute.NotAllow', 'message' => 'This image cannot be distributed.', 'http_code' => 400, 'description' => '镜像不允许分发操作。'],
['code' => 'ImageStatus.Error', 'message' => 'The image status is error.', 'http_code' => 400, 'description' => '镜像状态错误。'],
['code' => 'ImageStatus.ValueNotSupported', 'message' => 'The image status is not supported for creating a delivery group.', 'http_code' => 400, 'description' => '该镜像状态下不可创建交付组。'],
['code' => 'ImageTask.Failed', 'message' => 'Start image task failed.', 'http_code' => 400, 'description' => '任务失败。'],
['code' => 'ImageUpdateFailed.NotAllow', 'message' => 'The image is not allowed to be modified.', 'http_code' => 400, 'description' => '镜像不允许修改。'],
['code' => 'ImageUpdateSharedImageFailed.NotAllow', 'message' => 'The shared image is not allowed to be modified.', 'http_code' => 400, 'description' => '共享镜像不允许修改。'],
['code' => 'Instance.ImageUnsupported', 'message' => 'A non-centralized image does not support this type of operation.', 'http_code' => 400, 'description' => '使用非中心化镜像不支持该操作。'],
['code' => 'Instance.NotFound', 'message' => 'The instance is not found.', 'http_code' => 400, 'description' => '实例找不到。'],
['code' => 'Instance.PhysicalNodeNotExist', 'message' => 'The instance physical node does not exist.', 'http_code' => 400, 'description' => '物理节点不存在。'],
['code' => 'InternalError', 'message' => 'Internal error.', 'http_code' => 400, 'description' => '内部错误'],
['code' => 'InternalError.TicketGenInternalError', 'message' => 'An error occurred while generating a ticket.', 'http_code' => 400, 'description' => '生成Ticket时出错。'],
['code' => 'InvalidAliUid.Missing', 'message' => 'The AliUid is missing.', 'http_code' => 400, 'description' => '参数AliUid缺失'],
['code' => 'InvalidAliUid.Missing', 'message' => 'The specified parameter AliUid is missing.', 'http_code' => 400, 'description' => 'AliUid缺失。'],
['code' => 'InvalidAliUid.NotFound', 'message' => 'The AliUid is not found.', 'http_code' => 400, 'description' => '找不到参数AliUid。'],
['code' => 'InvalidAmount.Invalid', 'message' => 'The Amount is invalid.', 'http_code' => 400, 'description' => '参数Amount不合法。'],
['code' => 'InvalidAppId.Missing', 'message' => 'The AppId is missing.', 'http_code' => 400, 'description' => '参数AppId缺失'],
['code' => 'InvalidAppId.NotFound', 'message' => 'The AppId is not found.', 'http_code' => 400, 'description' => '找不到参数AppId。'],
['code' => 'InvalidAppInstanceGroup.NotContainThisAPP', 'message' => 'The app instance group does not contain this app.', 'http_code' => 400, 'description' => '交付组不包含此应用。'],
['code' => 'InvalidAppInstanceGroup.NotFound', 'message' => 'The app instance group is not found.', 'http_code' => 400, 'description' => '交付组未找到'],
['code' => 'InvalidAppInstanceGroup.NotFound', 'message' => 'The AppInstanceGroupId %s is not found.', 'http_code' => 400, 'description' => '找不到AppInstanceGroupId %s。'],
['code' => 'InvalidAppInstanceGroup.NullAppInstanceGroup', 'message' => 'The app instance group is null.', 'http_code' => 400, 'description' => '交付组为空。'],
['code' => 'InvalidAppInstanceGroup.NullOrNotPublishedStatus', 'message' => 'The app instance group does not exist or is not published.', 'http_code' => 400, 'description' => '交付组不存在或未发布。'],
['code' => 'InvalidAppInstanceGroup.StatusInvalid', 'message' => 'The app instance group status is invalid.', 'http_code' => 400, 'description' => '交付组状态无效。'],
['code' => 'InvalidAppInstanceGroup.Unauthorized', 'message' => 'Unauthorized to use this app.', 'http_code' => 400, 'description' => '没有权限使用此应用。'],
['code' => 'InvalidAppInstanceGroupAction.IllegalAction', 'message' => 'The action against the app instance group is not allowed.', 'http_code' => 400, 'description' => '不允许对交付组执行此操作。'],
['code' => 'InvalidAppInstanceGroupId.Missing', 'message' => 'The AppInstanceGroupId is missing.', 'http_code' => 400, 'description' => '参数AppInstanceGroupId缺失'],
['code' => 'InvalidAppInstanceGroupName.Missing', 'message' => 'The AppInstanceGroupName is missing.', 'http_code' => 400, 'description' => '参数AppInstanceGroupName缺失。'],
['code' => 'InvalidAppInstanceGroupSpecItem.NotFound', 'message' => 'The app instance group spec item is not found.', 'http_code' => 400, 'description' => '交付组(旧版概念,已弃用)未找到。'],
['code' => 'InvalidAppInstanceId.NotFound', 'message' => 'The AppInstanceId is not found.', 'http_code' => 400, 'description' => '找不到参数AppInstanceId。'],
['code' => 'InvalidAppInstanceState', 'message' => 'The app instance state is invalid.', 'http_code' => 200, 'description' => '应用实例状态不合法。'],
['code' => 'InvalidAppInstanceType.Invalid', 'message' => 'The AppInstanceType is invalid.', 'http_code' => 400, 'description' => '参数AppInstanceType不合法'],
['code' => 'InvalidAppInstanceType.Missing', 'message' => 'The AppInstanceType is missing.', 'http_code' => 400, 'description' => '参数AppInstanceType缺失'],
['code' => 'InvalidAppInstanceType.NotFound', 'message' => 'The app instance type is not found.', 'http_code' => 400, 'description' => '找不到该应用实例类型。'],
['code' => 'InvalidAppVersion.Missing', 'message' => 'The AppVersion is missing.', 'http_code' => 400, 'description' => '参数AppVersion缺失。'],
['code' => 'InvalidBaseImage.InvalidStatus', 'message' => 'Invalid base image status.', 'http_code' => 400, 'description' => '基础镜像状态无效。'],
['code' => 'InvalidBaseImage.NotConfigured', 'message' => 'Configuration required for Vhd/Container images.', 'http_code' => 400, 'description' => 'Vhd/Container镜像类型需要配置BaseImageId。'],
['code' => 'InvalidBaseImage.NotFound', 'message' => 'Base image not found.', 'http_code' => 400, 'description' => '基础镜像找不到。'],
['code' => 'InvalidBaseImage.NotSystemImage', 'message' => 'Base image is not system image.', 'http_code' => 400, 'description' => '基础镜像不是系统镜像。'],
['code' => 'InvalidBaseImageVersion.NotOnline', 'message' => 'Base image version is not online.', 'http_code' => 400, 'description' => '基础镜像不是有效在线版本。'],
['code' => 'InvalidBindRelationship.NotFound', 'message' => 'The bind relationship is not found.', 'http_code' => 400, 'description' => '交付组绑定的资源池未找到'],
['code' => 'InvalidBindStage.Missing', 'message' => 'The BindStage is missing.', 'http_code' => 400, 'description' => '参数BindStage缺失。'],
['code' => 'InvalidBindStrategy.NotFound', 'message' => 'The bind strategy is not found.', 'http_code' => 400, 'description' => '找不到该绑定策略。'],
['code' => 'InvalidBizType', 'message' => 'The bizType parameter is invalid.', 'http_code' => 400, 'description' => '业务类型不合法。'],
['code' => 'InvalidBrowserInstanceGroup.NotFound', 'message' => 'The browser instance group is not found.', 'http_code' => 400, 'description' => '云浏览器不存在,请确认后重试'],
['code' => 'InvalidBundle.NotFound', 'message' => 'The request bundle does not exist.', 'http_code' => 400, 'description' => '请求的应用资源模板不存在。'],
['code' => 'InvalidChargeType.Missing', 'message' => 'The ChargeType is missing.', 'http_code' => 400, 'description' => '参数ChargeType缺失'],
['code' => 'InvalidChargeType.ValueNotSupported', 'message' => 'The ChargeType is invalid.', 'http_code' => 400, 'description' => '参数ChargeType无效。'],
['code' => 'InvalidDataDiskSize.SmallerThanParent', 'message' => 'Sub-image data disk size is smaller than the parent image.', 'http_code' => 400, 'description' => '子镜像数据盘小于父镜像数据盘。'],
['code' => 'InvalidDomainId.NotFound', 'message' => 'The DomainId is not found.', 'http_code' => 400, 'description' => '找不到参数DomainId。'],
['code' => 'InvalidDriveId.NotFound', 'message' => 'The DriveId is not found.', 'http_code' => 400, 'description' => '找不到参数DriveId。'],
['code' => 'InvalidEndUserId.Missing', 'message' => 'The EndUserId is missing.', 'http_code' => 400, 'description' => '参数EndUserId缺失'],
['code' => 'InvalidEndUserIds.ValueNotSupported', 'message' => 'The EndUserIds is invalid.', 'http_code' => 400, 'description' => '参数EndUserIds无效。'],
['code' => 'InvalidExternalFileId.NotFound', 'message' => 'The ExternalFileId is not found.', 'http_code' => 400, 'description' => '找不到参数ExternalFileId。'],
['code' => 'InvalidGwAddress.NotFound', 'message' => 'The gateway address is not found.', 'http_code' => 400, 'description' => '找不到该网关地址。'],
['code' => 'InvalidGwParam.NotFound', 'message' => 'A parameter error occurred while generating the gateway token.', 'http_code' => 400, 'description' => '生成网关令牌时出现参数错误。'],
['code' => 'InvalidGwToken.ValueTooLong', 'message' => 'The GWToken is too long.', 'http_code' => 400, 'description' => 'GWToken过长。'],
['code' => 'InvalidImageConfig.RegionInvalid', 'message' => 'The region configuration of this image is invalid.', 'http_code' => 400, 'description' => '镜像的地域配置信息无效。'],
['code' => 'InvalidImageId.Invalid', 'message' => 'The specified parameter imageId is invalid.', 'http_code' => 400, 'description' => '镜像ID无效'],
['code' => 'InvalidImageOperation.Failed', 'message' => 'Invalid image operation.', 'http_code' => 400, 'description' => '镜像操作无效。'],
['code' => 'InvalidImageOperation.ImageIsCreating', 'message' => 'Failed to operation the image, it is creating.', 'http_code' => 400, 'description' => '镜像在创建中,操作无效。'],
['code' => 'InvalidImagePackageType.Unsupported', 'message' => 'Unsupported image package type.', 'http_code' => 400, 'description' => '不支持的PackageType。'],
['code' => 'InvalidInstanceId.Missing', 'message' => 'The InstanceId is invalid.', 'http_code' => 400, 'description' => '参数InstanceId不合法'],
['code' => 'InvalidLoginToken.Missing', 'message' => 'The LoginToken is missing.', 'http_code' => 400, 'description' => '参数LoginToken缺失。'],
['code' => 'InvalidMaxResults', 'message' => 'The MaxResults is invalid.', 'http_code' => 400, 'description' => '参数MaxResults无效'],
['code' => 'InvalidNextToken', 'message' => 'The NextToken is invalid.', 'http_code' => 400, 'description' => '参数NextToken无效'],
['code' => 'InvalidNodeInstanceType.NotFound', 'message' => 'The node instance type is not found.', 'http_code' => 400, 'description' => '找不到该节点实例类型。'],
['code' => 'InvalidNodeInstanceType.NotSupportOsType', 'message' => 'The node instance type does not support images with this OS type.', 'http_code' => 400, 'description' => '该资源规格不支持搭载此操作系统的镜像。'],
['code' => 'InvalidOrder.CommodityCodeNotMatch', 'message' => 'No CommodityCode matches this order.', 'http_code' => 400, 'description' => '没有匹配到商品的模块'],
['code' => 'InvalidOrder.CommodityCodeNotMatch', 'message' => 'No commodityCode matched for this order.', 'http_code' => 400, 'description' => '没有匹配到商品的模块'],
['code' => 'InvalidOrderId.NotFound', 'message' => 'The order is not found.', 'http_code' => 400, 'description' => '订单找不到'],
['code' => 'InvalidOrderId.NotFound', 'message' => 'The specified order is not found.', 'http_code' => 400, 'description' => '没有订单信息'],
['code' => 'InvalidOsType.ValueNotSupported', 'message' => 'The operation system type is not supported.', 'http_code' => 400, 'description' => '镜像的操作系统类型不支持'],
['code' => 'InvalidParameter.%s', 'message' => 'The parameter %s is invalid.', 'http_code' => 400, 'description' => '参数值校验不通过。'],
['code' => 'InvalidParameter.AddAccount/RemoveAccount', 'message' => 'The tenant ID to be added or removed is invalid.', 'http_code' => 400, 'description' => '添加或删除共享的租户ID不合法。'],
['code' => 'InvalidParameter.ImageId', 'message' => 'The image ID is invalid.', 'http_code' => 400, 'description' => '镜像ID不合法。'],
['code' => 'InvalidParameter.SystemDiskSize', 'message' => 'The system disk size is invalid.', 'http_code' => 400, 'description' => '系统盘大小不合法。'],
['code' => 'InvalidParentImage.AlreadyHasCommunityImage', 'message' => 'The parent image already has a community image.', 'http_code' => 400, 'description' => '镜像不能发布社区镜像,该镜像已经存在社区镜像。'],
['code' => 'InvalidParentImage.ImageTypeIsNotUserImage', 'message' => 'Invalid operation. The parent image is not a user image.', 'http_code' => 400, 'description' => '父镜像不是用户镜像,操作无效。'],
['code' => 'InvalidParentImage.InvalidStatus', 'message' => 'Invalid parent image status.', 'http_code' => 400, 'description' => '父镜像状态无效。'],
['code' => 'InvalidParentImage.NotFound', 'message' => 'Parent image not found.', 'http_code' => 400, 'description' => '父镜像找不到。'],
['code' => 'InvalidPeriod.Invalid', 'message' => 'The Period is invalid.', 'http_code' => 400, 'description' => '参数Period不合法'],
['code' => 'InvalidPeriod.Missing', 'message' => 'The Period is missing.', 'http_code' => 400, 'description' => '参数Period缺失'],
['code' => 'InvalidPeriodUnit.Missing', 'message' => 'The PeriodUnit is missing.', 'http_code' => 400, 'description' => '参数PeriodUnit缺失'],
['code' => 'InvalidPeriodUnit.ValueNotSupported', 'message' => 'The PeriodUnit is invalid.', 'http_code' => 400, 'description' => '参数PeriodUnit无效。'],
['code' => 'InvalidProductType.Invalid', 'message' => 'The ProductType is invalid.', 'http_code' => 400, 'description' => '参数ProductType无效。'],
['code' => 'InvalidProductType.Missing', 'message' => 'The ProductType is missing.', 'http_code' => 400, 'description' => '参数ProductType缺失'],
['code' => 'InvalidProductType.ValueNotSupported', 'message' => 'The ProductType is not supported.', 'http_code' => 400, 'description' => '不支持该产品类型'],
['code' => 'InvalidRegion.ConfigError', 'message' => 'The region configuration is not found.', 'http_code' => 400, 'description' => '地域配置不存在'],
['code' => 'InvalidRegion.Missing', 'message' => 'The Region is missing.', 'http_code' => 400, 'description' => '参数Region缺失'],
['code' => 'InvalidRegion.NotFound', 'message' => 'The region is not found.', 'http_code' => 400, 'description' => '地域不存在'],
['code' => 'InvalidRegion.NotMatch', 'message' => 'The region does not match the current environment.', 'http_code' => 400, 'description' => '地域与当前环境不匹配。'],
['code' => 'InvalidRegionBind.NotFound', 'message' => 'The AppRegionBind is not found.', 'http_code' => 400, 'description' => '找不到参数AppRegionBind。'],
['code' => 'InvalidRegionId.NotFound', 'message' => 'The RegionId is not found.', 'http_code' => 400, 'description' => '找不到参数RegionId。'],
['code' => 'InvalidResourcePool.NotFound', 'message' => 'The resource pool is not found.', 'http_code' => 400, 'description' => '资源池未找到'],
['code' => 'InvalidResponse.Missing', 'message' => 'The response body is missing.', 'http_code' => 400, 'description' => '响应体缺失。'],
['code' => 'InvalidSessionId.Missing', 'message' => 'The SessionId is missing.', 'http_code' => 400, 'description' => '参数SessionId缺失。'],
['code' => 'InvalidSourceImage.ImageTypeCannotBeShared', 'message' => 'Source image cannot be shared.', 'http_code' => 400, 'description' => '源镜像类型不支持共享。'],
['code' => 'InvalidSourceImage.StatusNotAvailable', 'message' => 'Invalid source image status.', 'http_code' => 400, 'description' => '源镜像状态非正常。'],
['code' => 'InvalidSpecId.Missing', 'message' => 'The SpecId is missing.', 'http_code' => 400, 'description' => '参数SpecId缺失。'],
['code' => 'InvalidStorageType.NotFound', 'message' => 'The StorageType is not found.', 'http_code' => 400, 'description' => '找不到参数StorageType。'],
['code' => 'InvalidStrategyConfig.ChargeTypeNotSupported', 'message' => 'The charge type is not supported for the given strategy.', 'http_code' => 400, 'description' => '指定的策略不支持该付费类型。'],
['code' => 'InvalidStrategyConfig.Invalid', 'message' => 'The StrategyConfig is invalid.', 'http_code' => 400, 'description' => '参数StrategyConfig无效。'],
['code' => 'InvalidStrategyConfig.Invalid', 'message' => 'The policy configuration is invalid.', 'http_code' => 400, 'description' => '策略配置不可用'],
['code' => 'InvalidStrategyConfig.Missing', 'message' => 'The StrategyConfig is missing.', 'http_code' => 400, 'description' => '参数StrategyConfig缺失。'],
['code' => 'InvalidStrategyConfig.NotFound', 'message' => 'The StrategyConfig is not found.', 'http_code' => 400, 'description' => '找不到参数StrategyConfig。'],
['code' => 'InvalidStrategyParam.Invalid', 'message' => 'The StrategyParam is invalid.', 'http_code' => 400, 'description' => '参数StrategyParam无效。'],
['code' => 'InvalidStrategyType.ValueNotSupported', 'message' => 'The strategy type is not supported.', 'http_code' => 400, 'description' => '不支持该策略类型。'],
['code' => 'InvalidStrategyType.ValueNotSupported', 'message' => 'The policy type is not supported.', 'http_code' => 400, 'description' => '策略类型不支持'],
['code' => 'InvalidSubAppType.ValueNotSupported', 'message' => 'The sub-category of the app is not supported.', 'http_code' => 400, 'description' => '镜像内的应用子类型不支持'],
['code' => 'InvalidSystemDiskSize.SmallerThanParent', 'message' => 'Sub-image system disk size is smaller than the parent image.', 'http_code' => 400, 'description' => '子镜像系统盘小于父镜像系统盘。'],
['code' => 'InvalidTargetAliUid.TargetShareImageAlreadyExist', 'message' => 'Target shared image already exists.', 'http_code' => 400, 'description' => '共享镜像已经存在。'],
['code' => 'InvalidTaskId.NotFound', 'message' => 'The TaskId is not found.', 'http_code' => 400, 'description' => '找不到参数TaskId。'],
['code' => 'InvalidTemplate.NotFound', 'message' => 'Template not found.', 'http_code' => 400, 'description' => '模版未找到。'],
['code' => 'InvalidUserId.NotFound', 'message' => 'The UserId is not found.', 'http_code' => 400, 'description' => '找不到参数UserId。'],
['code' => 'LogOffAllSession.Failed', 'message' => 'Failed to log off all sessions in the delivery group.', 'http_code' => 400, 'description' => '注销交付组下所有会话失败'],
['code' => 'MissingParameter', 'message' => 'There is a missing parameter.', 'http_code' => 400, 'description' => '缺少参数'],
['code' => 'MissingParameter.AppIdAndAppVersion', 'message' => 'The AppId and AppVersion are missing.', 'http_code' => 400, 'description' => '参数AppId、AppVersion不存在'],
['code' => 'MissingParameter.RegionId', 'message' => 'The RegionId is missing.', 'http_code' => 400, 'description' => '参数RegionId不存在'],
['code' => 'nvalidStrategyConfig.NotFound', 'message' => 'The policy configuration is not found.', 'http_code' => 400, 'description' => '找不到对应的策略配置'],
['code' => 'OperationDenied.NoStock', 'message' => 'The operation is denied, because the instance stock is unavailable.', 'http_code' => 400, 'description' => '操作已被拒绝,因为实例库存不可用。'],
['code' => 'OtaTask.Canceled', 'message' => 'The task has been cancelled.', 'http_code' => 400, 'description' => '该任务已取消。'],
['code' => 'OtaTask.NotFound', 'message' => 'The ota task is not found.', 'http_code' => 400, 'description' => '找不到该OTA任务。'],
['code' => 'OtaTask.Running', 'message' => 'The task is running and cannot be sumitted.', 'http_code' => 400, 'description' => '该任务正在运行,无法提交。'],
['code' => 'OtaTaskNotifyRegion.Error', 'message' => 'The unit manager failed to receive the OTA upgrade job.', 'http_code' => 400, 'description' => '单元管理器无法接收OTA升级任务。'],
['code' => 'ParentImage.NotExist', 'message' => 'The parent image does not exist.', 'http_code' => 400, 'description' => '依赖父镜像不存在。'],
['code' => 'ParentImageRegionDistribute.NotExist', 'message' => 'The target distribution region of the parent image does not exist.', 'http_code' => 400, 'description' => '依赖父镜像分发地址不存在。'],
['code' => 'ProductTypeInvalid', 'message' => 'The ProductType is invalid.', 'http_code' => 400, 'description' => '产品类型无效'],
['code' => 'ProductTypeNotMatch', 'message' => 'The productType and image do not match.', 'http_code' => 400, 'description' => '输入ProductType和镜像不匹配。'],
['code' => 'QueryTemplate.Failed', 'message' => 'Query template failed.', 'http_code' => 400, 'description' => '查找模板失败。'],
['code' => 'RegionUnBind.Fail', 'message' => 'Failed to unbind.', 'http_code' => 400, 'description' => '无法取消绑定。'],
['code' => 'ServiceUnavailable', 'message' => 'Service unavailable. Please try again later.', 'http_code' => 500, 'description' => '服务不可用,请稍后再试。'],
['code' => 'StockError.InvalidResourceRequest', 'message' => 'Your request cannot be processed currently due to an error. Please try again later.', 'http_code' => 500, 'description' => '库存检查失败,系统暂时无法处理您的请求,请稍后再试。'],
['code' => 'StockError.NoStock', 'message' => 'The selected specification is out of stock. Please try again later or select other specifications.', 'http_code' => 400, 'description' => '您选择的规格库存不足,请稍后再试或更换其他规格。'],
['code' => 'StorageLock.Exist', 'message' => 'The storage lock exists.', 'http_code' => 400, 'description' => '存储读写锁已存在。'],
['code' => 'StorageLock.NotFound', 'message' => 'The storage lock is not found.', 'http_code' => 400, 'description' => '找不到该存储读写锁。'],
['code' => 'StorageLockProperties.NotMatch', 'message' => 'The storage lock properties do not match.', 'http_code' => 400, 'description' => '存储读写锁的属性不匹配。'],
['code' => 'StorageLockUnitResponse.Empty', 'message' => 'The storage lock unit is found empty.', 'http_code' => 400, 'description' => '存储读写锁单元为空。'],
['code' => 'StorageLockUnlockLevel.Error', 'message' => 'An unlock level error occurred while unlocking the storage lock.', 'http_code' => 400, 'description' => '解锁存储读写锁时出现解锁级别错误。'],
['code' => 'Task.ResourceReleased', 'message' => 'Cannot retry because task resource is released.', 'http_code' => 400, 'description' => '任务资源已释放。'],
['code' => 'TaskType.Invalid', 'message' => 'Invalid task type.', 'http_code' => 400, 'description' => '任务类型无效。'],
['code' => 'TryBind.AppRegionBindLockFailed', 'message' => 'Failed to lock the app and region bind.', 'http_code' => 400, 'description' => '无法锁定应用和地域的绑定。'],
['code' => 'TryBind.NoBindContext', 'message' => 'Failed to bind, because there is no bind context.', 'http_code' => 400, 'description' => '无法绑定,因为没有绑定的上下文。'],
['code' => 'TryBind.NoCandidateAppInstanceGroup', 'message' => 'Failed to bind, because there is no candidate app instance group.', 'http_code' => 400, 'description' => '无法绑定,因为没有可用的交付组。'],
['code' => 'TryBind.NoSupportedApp', 'message' => 'Failed to bind, because there is no supported app for this file extension.', 'http_code' => 400, 'description' => '无法绑定,因为没有支持此文件后缀的应用。'],
['code' => 'TryRegionBind.BindExistingAppInstanceFail', 'message' => 'Failed to bind existing app instance.', 'http_code' => 400, 'description' => '无法绑定现有的应用实例。'],
['code' => 'TryRegionBind.NoCandidateAppInstance', 'message' => 'Failed to bind, because there is no candidate app instance.', 'http_code' => 400, 'description' => '无法绑定,因为没有可用的应用实例。'],
['code' => 'TryRegionBind.NoIdleAppInstance', 'message' => 'Failed to bind, because there is no idle app instance.', 'http_code' => 400, 'description' => '无法绑定,因为没有空闲的应用实例。'],
['code' => 'TryRegionBind.TicketIsNull', 'message' => 'Failed to bind, because a null ticket is returned.', 'http_code' => 400, 'description' => '无法绑定,因为返回的Ticket为空。'],
['code' => 'UpdateImage.Failed', 'message' => 'Failed to update the image.', 'http_code' => 400, 'description' => '无法更新镜像。'],
['code' => 'UpdateRegion.NotSupport', 'message' => 'The distributed regions of vhd or container images cannot be modified.', 'http_code' => 400, 'description' => 'Vhd/Container镜像类型不支持修改地域配置信息。'],
['code' => 'UserIdentifier.NotFound', 'message' => 'This username does not exist. Please check if it is correct.', 'http_code' => 400, 'description' => '该用户名不存在,请检查输入是否正确。'],
],
'changeSet' => [
[
'apis' => [
['description' => '请求参数发生变更', 'api' => 'GetLoginToken'],
],
'createdAt' => '2025-02-27T12:04:21.000Z',
'description' => '',
],
[
'apis' => [
['description' => '请求参数发生变更', 'api' => 'FindIdpListByLoginIdentifier'],
],
'createdAt' => '2024-12-13T02:07:46.000Z',
'description' => '',
],
[
'apis' => [
['description' => '请求参数发生变更', 'api' => 'GetLoginToken'],
['description' => '请求参数发生变更', 'api' => 'RefreshLoginToken'],
],
'createdAt' => '2024-12-11T03:48:41.000Z',
'description' => '',
],
[
'apis' => [
['description' => '请求参数发生变更', 'api' => 'RefreshLoginToken'],
],
'createdAt' => '2024-12-10T12:05:10.000Z',
'description' => '',
],
[
'apis' => [
['description' => '请求参数发生变更', 'api' => 'GetLoginToken'],
],
'createdAt' => '2024-12-06T09:32:29.000Z',
'description' => '',
],
[
'apis' => [
['description' => '请求参数发生变更', 'api' => 'GetLoginToken'],
],
'createdAt' => '2024-12-06T09:27:36.000Z',
'description' => '',
],
[
'apis' => [
['description' => '请求参数发生变更、响应参数发生变更', 'api' => 'GetLoginToken'],
],
'createdAt' => '2024-11-02T06:19:21.000Z',
'description' => '',
],
[
'apis' => [
['description' => '请求参数发生变更、响应参数发生变更', 'api' => 'FindIdpListByLoginIdentifier'],
],
'createdAt' => '2024-11-02T06:16:53.000Z',
'description' => '',
],
[
'apis' => [
['description' => '请求参数发生变更', 'api' => 'RefreshLoginToken'],
],
'createdAt' => '2024-07-22T03:08:26.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'OpenAPI 下线', 'api' => 'ChangePassword'],
['description' => 'OpenAPI 下线', 'api' => 'FindIdpListByUuid'],
['description' => '请求参数发生变更', 'api' => 'GetLoginToken'],
['description' => '请求参数发生变更', 'api' => 'RefreshLoginToken'],
['description' => 'OpenAPI 下线', 'api' => 'ResetPassword'],
['description' => 'OpenAPI 下线', 'api' => 'SendTokenCode'],
],
'createdAt' => '2022-06-22T08:14:12.000Z',
'description' => '统一认证服务',
],
[
'apis' => [
['description' => 'OpenAPI 下线', 'api' => 'FindIdpListByLoginIdentifier'],
],
'createdAt' => '2022-06-22T06:11:02.000Z',
'description' => '企业ID',
],
[
'apis' => [
['description' => 'OpenAPI 下线', 'api' => 'FindIdpListByLoginName'],
['description' => 'OpenAPI 下线', 'api' => 'GetLoginToken'],
['description' => 'OpenAPI 下线', 'api' => 'RefreshLoginToken'],
],
'createdAt' => '2022-04-28T15:40:43.000Z',
'description' => '无影统一身份认证服务',
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '-1', 'countWindow' => 1, 'regionId' => '*'],
],
],
'ram' => [
'productCode' => 'AppStreaming',
'productName' => '无影云应用',
'ramCodes' => ['appstreaming', 'ecd'],
'ramLevel' => '服务级',
'ramConditions' => [],
'ramActions' => [],
'resourceTypes' => [],
],
];
|