summaryrefslogtreecommitdiff
path: root/data/en_us/dysmsapi/2018-05-01/api-docs.php
blob: 415f7918d8b7a21f8576c9fae754df85535291ae (plain)
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
<?php return [
    'version' => '1.0',
    'info' => ['style' => 'RPC', 'product' => 'Dysmsapi', 'version' => '2018-05-01'],
    'directories' => [
        [
            'children' => ['BatchSendMessageToGlobe', 'SendMessageWithTemplate', 'SendMessageToGlobe'],
            'type' => 'directory',
            'title' => 'Send',
        ],
        [
            'children' => ['QueryMessage'],
            'type' => 'directory',
            'title' => 'Query',
        ],
        [
            'children' => ['ConversionData', 'SmsConversion'],
            'type' => 'directory',
            'title' => 'SMS conversion rate',
        ],
    ],
    'components' => [
        'schemas' => [],
    ],
    'apis' => [
        'BatchSendMessageToGlobe' => [
            'summary' => 'Sends a message to multiple recipients in countries or regions outside the Chinese mainland.',
            'methods' => ['post', 'get'],
            'schemes' => ['http', 'https'],
            'security' => [
                [
                    'AK' => [],
                ],
            ],
            'operationType' => 'read',
            'deprecated' => false,
            'systemTags' => [
                'operationType' => 'create',
                'riskType' => 'none',
                'chargeType' => 'paid',
                'abilityTreeCode' => '13267',
                'abilityTreeNodes' => ['FEATUREdysms1SWWZV'],
            ],
            'parameters' => [
                [
                    'name' => 'To',
                    'in' => 'query',
                    'schema' => ['description' => 'The mobile phone number of the recipient. You must add the dialing code to the beginning of each mobile phone number.'."\n"
                        ."\n"
                        .'For more information, see [Dialing codes](~~158400~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '[\\"931520581****\\",\\"931530581****\\",\\"931540581****\\",\\"931550581****\\"]', 'title' => ''],
                ],
                [
                    'name' => 'From',
                    'in' => 'query',
                    'schema' => ['description' => 'The mobile phone number of the sender. You can specify the sender ID when you call the API operation. The sender ID can contain only digits and letters. If the sender ID contains letters, it can be a maximum of 11 characters in length. If the sender ID contains only digits, it can be a maximum of 15 characters in length.', 'type' => 'string', 'required' => false, 'example' => 'Alicloud321', 'title' => ''],
                ],
                [
                    'name' => 'Message',
                    'in' => 'query',
                    'schema' => ['description' => 'The content of the message.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '[\\"message to 931520581****\\",\\"message to 931530581****\\",\\"message to 931540581****\\",\\"message to 931550581****\\"]', 'title' => ''],
                ],
                [
                    'name' => 'Type',
                    'in' => 'query',
                    'schema' => [
                        'description' => 'The type of the message. Valid values:'."\n"
                            ."\n"
                            .'- **NOTIFY**: notification'."\n"
                            ."\n"
                            .'- **MKT**: promotional message',
                        'type' => 'string',
                        'required' => false,
                        'docRequired' => true,
                        'example' => 'NOTIFY',
                        'enum' => [],
                        'title' => '',
                    ],
                ],
                [
                    'name' => 'TaskId',
                    'in' => 'query',
                    'schema' => ['description' => 'The ID of the messaging campaign. It must be 1 to 255 characters in length. The ID is the value of the TaskId field in the delivery receipt of the message.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'title' => '', 'example' => '123789****'],
                ],
                [
                    'name' => 'ValidityPeriod',
                    'in' => 'query',
                    'schema' => ['description' => 'The validity period of the message. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '600', 'title' => ''],
                ],
                [
                    'name' => 'ChannelId',
                    'in' => 'query',
                    'schema' => ['description' => 'The ID of the delivery channel.', 'type' => 'string', 'example' => 'sms-djnfjn344', 'title' => '', 'required' => false],
                ],
            ],
            'responses' => [
                200 => [
                    'schema' => [
                        'description' => '',
                        'type' => 'object',
                        'properties' => [
                            'ResponseCode' => ['description' => 'The HTTP status code. If OK is returned, the request is successful. For more information, see [Error codes](~~180674~~).', 'type' => 'string', 'example' => 'OK', 'title' => ''],
                            'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'F655A8D5-B967-440B-8683-DAD6FF8D28D3', 'title' => ''],
                            'FailedList' => ['description' => 'The list of the mobile phone numbers that failed to receive the messages.', 'type' => 'string', 'example' => '["931520581****","931530581****"]', 'title' => ''],
                            'ResponseDescription' => ['description' => 'The description of the status code.', 'type' => 'string', 'example' => 'The SMS Send Request was accepted', 'title' => ''],
                            'From' => ['description' => 'The sender ID that was returned. The API operation returns the sender ID that you have specified in the request parameters.', 'type' => 'string', 'example' => 'Alicloud321', 'title' => ''],
                            'MessageIdList' => ['description' => 'The ID of the sent message.', 'type' => 'string', 'example' => '["123****","124****"]', 'title' => ''],
                            'SuccessCount' => ['description' => 'The number of sent messages.', 'type' => 'string', 'example' => '2', 'title' => ''],
                        ],
                        'title' => '',
                        'example' => '',
                    ],
                ],
            ],
            'staticInfo' => ['returnType' => 'synchronous'],
            'eventInfo' => [
                'enable' => false,
                'eventNames' => [],
            ],
            'responseDemo' => '[{"errorExample":"","example":"{\\n  \\"ResponseCode\\": \\"OK\\",\\n  \\"RequestId\\": \\"F655A8D5-B967-440B-8683-DAD6FF8D28D3\\",\\n  \\"FailedList\\": \\"[\\\\\\"931520581****\\\\\\",\\\\\\"931530581****\\\\\\"]\\",\\n  \\"ResponseDescription\\": \\"The SMS Send Request was accepted\\",\\n  \\"From\\": \\"Alicloud321\\",\\n  \\"MessageIdList\\": \\"[\\\\\\"123****\\\\\\",\\\\\\"124****\\\\\\"]\\",\\n  \\"SuccessCount\\": \\"2\\"\\n}","type":"json"}]',
            'title' => 'BatchSendMessageToGlobe',
            'description' => '## Usage notes'."\n"
                ."\n"
                .'- You cannot call the BatchSendMessageToGlobe operation to send messages to the Chinese mainland.'."\n"
                ."\n"
                .'- You can call the BatchSendMessageToGlobe operation to send notifications and promotional messages to a small number of mobile phone numbers at a time. To send messages to a large number of mobile phone numbers at a time, use the mass messaging feature of the SMS console.'."\n"
                ."\n"
                .'- To ensure that messages can be sent on time, call the [SendMessageToGlobe](~~406238~~) operation.'."\n"
                ."\n"
                .'- In each request, you can send messages to up to 1,000 mobile phone numbers.',
            'extraInfo' => "\n",
            'changeSet' => [],
            'ramActions' => [
                [
                    'operationType' => 'create',
                    'ramAction' => [
                        'action' => 'dysms:BatchSendMessageToGlobe',
                        'authLevel' => 'operate',
                        'actionConditions' => [],
                        'resources' => [
                            ['validationType' => 'always', 'product' => 'SMS', 'resourceType' => 'All Resource', 'arn' => '*'],
                        ],
                    ],
                ],
            ],
            'flowControl' => [
                'flowControlList' => [
                    ['threshold' => '1', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchSendMessageToGlobe'],
                ],
                'product' => ['code' => 'dysms', 'title' => '短信服务'],
            ],
        ],
        'ConversionData' => [
            'summary' => 'Reports the status of an OTP message to Alibaba Cloud SMS.',
            'methods' => ['post'],
            'schemes' => ['http', 'https'],
            'security' => [
                [
                    'AK' => [],
                ],
            ],
            'operationType' => 'read',
            'deprecated' => false,
            'systemTags' => [
                'operationType' => 'update',
                'riskType' => 'none',
                'chargeType' => 'free',
                'abilityTreeCode' => '31341',
                'abilityTreeNodes' => ['FEATUREdysmsL8BKKM'],
                'autoTest' => true,
                'tenantRelevance' => 'publicInformation',
            ],
            'parameters' => [
                [
                    'name' => 'ReportTime',
                    'in' => 'formData',
                    'schema' => ['description' => 'Timestamp of the conversion rate observation should be a Unix timestamp, a millisecond-level long integer.'."\n"
                        ."\n"
                        .'> If this field is not specified: the current timestamp is the default.', 'type' => 'integer', 'format' => 'int64', 'example' => '1349055900000', 'title' => '', 'required' => false],
                ],
                [
                    'name' => 'ConversionRate',
                    'in' => 'formData',
                    'schema' => ['description' => 'Conversion rate monitoring return value.'."\n"
                        ."\n"
                        .'> The value of this parameter is of type double, and the value is between \\[0,1].', 'type' => 'string', 'required' => true, 'example' => '0.53', 'title' => ''],
                ],
            ],
            'responses' => [
                200 => [
                    'schema' => [
                        'description' => '',
                        'type' => 'object',
                        'properties' => [
                            'ResponseCode' => ['description' => 'Status code. Returning OK means the request was successful. For other error codes, please refer to the [Error codes](~~180674~~) list.', 'type' => 'string', 'example' => 'OK', 'title' => ''],
                            'ResponseDescription' => ['description' => 'The description of the status code.', 'type' => 'string', 'example' => 'OK', 'title' => ''],
                            'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'F655A8D5-B967-440B-8683-DAD6FF8D****', 'title' => ''],
                        ],
                        'title' => '',
                        'example' => '',
                    ],
                ],
            ],
            'staticInfo' => ['returnType' => 'synchronous'],
            'responseDemo' => '[{"errorExample":"","example":"{\\n  \\"ResponseCode\\": \\"OK\\",\\n  \\"ResponseDescription\\": \\"OK\\",\\n  \\"RequestId\\": \\"F655A8D5-B967-440B-8683-DAD6FF8D****\\"\\n}","type":"json"}]',
            'title' => 'ConversionData',
            'description' => 'Metrics:'."\n"
                ."\n"
                .'- Requested OTP messages'."\n"
                ."\n"
                .'- Verified OTP messages'."\n"
                ."\n"
                .'An OTP conversion rate is calculated based on the following formula: OTP conversion rate = Number of verified OTP messages/Number of requested OTP messages.',
            'changeSet' => [],
            'ramActions' => [
                [
                    'operationType' => 'update',
                    'ramAction' => [
                        'action' => 'dysms:ConversionData',
                        'authLevel' => 'operate',
                        'actionConditions' => [],
                        'resources' => [
                            ['validationType' => 'always', 'product' => 'SMS', 'resourceType' => 'All Resource', 'arn' => '*'],
                        ],
                    ],
                ],
            ],
            'flowControl' => [
                'flowControlList' => [
                    ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ConversionData'],
                ],
                'product' => ['code' => 'dysms', 'title' => '短信服务'],
            ],
        ],
        'QueryMessage' => [
            'summary' => 'Queries the delivery report of a message.',
            'methods' => ['post', 'get'],
            'schemes' => ['http', 'https'],
            'security' => [
                [
                    'AK' => [],
                ],
            ],
            'operationType' => 'read',
            'deprecated' => false,
            'systemTags' => [
                'operationType' => 'get',
                'riskType' => 'none',
                'chargeType' => 'free',
                'abilityTreeCode' => '13268',
                'abilityTreeNodes' => ['FEATUREdysmsRZSVOZ'],
            ],
            'parameters' => [
                [
                    'name' => 'MessageId',
                    'in' => 'query',
                    'schema' => ['description' => 'The ID of the message.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'title' => '', 'example' => '1008030xxx3003'],
                ],
            ],
            'responses' => [
                200 => [
                    'schema' => [
                        'description' => 'The response parameters.',
                        'type' => 'object',
                        'properties' => [
                            'Status' => ['description' => 'The delivery status of the message.'."\n"
                                ."\n"
                                .'- 1: The message was sent.'."\n"
                                ."\n"
                                .'- 2: The message failed to be sent.'."\n"
                                ."\n"
                                .'- 3: The message is being sent.', 'type' => 'string', 'example' => '1', 'title' => ''],
                            'ErrorDescription' => ['description' => 'The description of the status code.', 'type' => 'string', 'example' => 'success', 'title' => ''],
                            'ResponseCode' => ['description' => 'The status code of the delivery request.', 'type' => 'string', 'example' => 'OK', 'title' => ''],
                            'ReceiveDate' => ['description' => 'The time when the delivery receipt was received from the carrier.', 'type' => 'string', 'example' => 'Mon, 24 Dec 2018 16:58:22 +0800', 'title' => ''],
                            'NumberDetail' => [
                                'title' => '',
                                'description' => 'The details about the mobile phone number.',
                                'type' => 'object',
                                'properties' => [
                                    'Carrier' => ['description' => 'The carrier that owns the mobile phone number.', 'type' => 'string', 'example' => 'CMI', 'title' => ''],
                                    'Region' => ['description' => 'The region to which the mobile phone number belongs.', 'type' => 'string', 'example' => 'HongKong', 'title' => ''],
                                    'Country' => ['description' => 'The country to which the mobile phone number belongs.', 'type' => 'string', 'example' => 'China', 'title' => ''],
                                ],
                                'example' => '',
                            ],
                            'Message' => ['description' => 'The content of the message.', 'type' => 'string', 'example' => 'Hello!', 'title' => ''],
                            'ResponseDescription' => ['description' => 'The description of the delivery request status.', 'type' => 'string', 'example' => 'The SMS Send Request was accepted', 'title' => ''],
                            'ErrorCode' => ['description' => 'The status code of the message.', 'type' => 'string', 'example' => 'DELIVERED', 'title' => ''],
                            'SendDate' => ['description' => 'The time when the message was sent to the carrier.', 'type' => 'string', 'example' => 'Mon, 24 Dec 2018 16:58:22 +0800', 'title' => ''],
                            'To' => ['description' => 'The mobile phone number to which the message was sent.', 'type' => 'string', 'example' => '6581xxx810', 'title' => ''],
                            'MessageId' => ['description' => 'The ID of the message.', 'type' => 'string', 'example' => '1008030xxx3003', 'title' => ''],
                            'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'F655A8D5-B967-440B-8683-DAD6FF8D28D0', 'title' => ''],
                        ],
                        'title' => '',
                        'example' => '',
                    ],
                ],
            ],
            'staticInfo' => ['returnType' => 'synchronous'],
            'responseDemo' => '[{"errorExample":"","example":"{\\n  \\"Status\\": \\"1\\",\\n  \\"ErrorDescription\\": \\"success\\",\\n  \\"ResponseCode\\": \\"OK\\",\\n  \\"ReceiveDate\\": \\"Mon, 24 Dec 2018 16:58:22 +0800\\",\\n  \\"NumberDetail\\": {\\n    \\"Carrier\\": \\"CMI\\",\\n    \\"Region\\": \\"HongKong\\",\\n    \\"Country\\": \\"China\\"\\n  },\\n  \\"Message\\": \\"Hello!\\",\\n  \\"ResponseDescription\\": \\"The SMS Send Request was accepted\\",\\n  \\"ErrorCode\\": \\"DELIVERED\\",\\n  \\"SendDate\\": \\"Mon, 24 Dec 2018 16:58:22 +0800\\",\\n  \\"To\\": \\"6581xxx810\\",\\n  \\"MessageId\\": \\"1008030xxx3003\\",\\n  \\"RequestId\\": \\"F655A8D5-B967-440B-8683-DAD6FF8D28D0\\"\\n}","type":"json"}]',
            'title' => 'QueryMessage',
            'description' => '### QPS limit'."\n"
                ."\n"
                .'This operation supports up to 300 calls per second per account. Exceeding this limit triggers throttling, which may impact your business. Monitor your call rate to stay within limits.',
            'requestParamsDescription' => ' ',
            'responseParamsDescription' => ' ',
            'extraInfo' => ' ',
            'changeSet' => [],
            'ramActions' => [
                [
                    'operationType' => 'get',
                    'ramAction' => [
                        'action' => 'dysms:QueryMessage',
                        'authLevel' => 'operate',
                        'actionConditions' => [],
                        'resources' => [
                            ['validationType' => 'always', 'product' => 'SMS', 'resourceType' => 'All Resource', 'arn' => '*'],
                        ],
                    ],
                ],
            ],
            'flowControl' => [
                'flowControlList' => [
                    ['threshold' => '300', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryMessage'],
                ],
                'product' => ['code' => 'dysms', 'title' => '短信服务'],
            ],
        ],
        'SendMessageToGlobe' => [
            'summary' => 'Sends messages to regions outside the Chinese mainland, including Hong Kong (China), Macao (China), Taiwan (China).',
            'methods' => ['post', 'get'],
            'schemes' => ['HTTP', 'HTTPS'],
            'security' => [
                [
                    'AK' => [],
                ],
            ],
            'operationType' => 'read',
            'deprecated' => false,
            'systemTags' => [
                'operationType' => 'create',
                'riskType' => 'none',
                'chargeType' => 'paid',
                'abilityTreeCode' => '13270',
                'abilityTreeNodes' => ['FEATUREdysms1SWWZV'],
            ],
            'parameters' => [
                [
                    'name' => 'To',
                    'in' => 'query',
                    'schema' => ['description' => 'The phone numbers to which the message is sent. Format: `Dialing code + Phone number`. For example, 8521245567\\*\\*\\*\\*.'."\n"
                        ."\n"
                        .'For dialing odes, see [Dialing codes](https://www.alibabacloud.com/help/en/short-message-service/latest/dialing-codes).'."\n"
                        ."\n"
                        .'> You cannot call this operation to send messages to the Chinese mainland.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '8521245567****', 'title' => ''],
                ],
                [
                    'name' => 'From',
                    'in' => 'query',
                    'schema' => ['description' => 'The phone number of the sender. You can also specify a sender ID, which can contain letters and digits. An alphanumeric ID can be up to 11 characters, while a numeric-only ID can have up to 15 digits.', 'type' => 'string', 'required' => false, 'example' => 'Alicloud321', 'title' => ''],
                ],
                [
                    'name' => 'Message',
                    'in' => 'query',
                    'schema' => ['description' => 'The message content.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'Hello', 'title' => ''],
                ],
                [
                    'name' => 'Type',
                    'in' => 'query',
                    'schema' => ['description' => 'The message type. Valid values:'."\n"
                        ."\n"
                        .'- OTP: verification code message.'."\n"
                        ."\n"
                        .'- NOTIFY: notification.'."\n"
                        ."\n"
                        .'- MKT: marketing message.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'NOTIFY'],
                ],
                [
                    'name' => 'TaskId',
                    'in' => 'query',
                    'schema' => ['description' => 'The ID of the task. The ID can be up to 255 characters in length. You can obtain the task ID from the TaskId field in the message receipt.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'title' => '', 'example' => '123****789'],
                ],
                [
                    'name' => 'ValidityPeriod',
                    'in' => 'query',
                    'schema' => ['description' => 'The validity period of the message, in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'title' => '', 'example' => '600'],
                ],
                [
                    'name' => 'ChannelId',
                    'in' => 'query',
                    'schema' => ['description' => 'The ID of the channel.', 'type' => 'string', 'required' => false, 'example' => '3790', 'title' => ''],
                ],
            ],
            'responses' => [
                200 => [
                    'schema' => [
                        'description' => 'The response parameters.',
                        'type' => 'object',
                        'properties' => [
                            'ResponseCode' => ['description' => 'The status code of the delivery request.', 'type' => 'string', 'example' => 'OK', 'title' => ''],
                            'NumberDetail' => [
                                'title' => '',
                                'description' => 'The phone number details.',
                                'type' => 'object',
                                'properties' => [
                                    'Carrier' => ['description' => 'The carrier.', 'type' => 'string', 'example' => 'CMI', 'title' => ''],
                                    'Region' => ['description' => 'The region to which the phone number belongs.', 'type' => 'string', 'example' => 'HongKong', 'title' => ''],
                                    'Country' => ['description' => 'The country where the number is registered.', 'type' => 'string', 'example' => 'China', 'title' => ''],
                                ],
                                'example' => '',
                            ],
                            'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'required' => false, 'example' => 'F655A8D5-B967-440B-8683-DAD6FF8DE990', 'title' => ''],
                            'Segments' => ['description' => 'The number of billed messages.', 'type' => 'string', 'example' => '1', 'title' => ''],
                            'ResponseDescription' => ['description' => 'The description of the delivery request status.', 'type' => 'string', 'example' => 'The SMS Send Request was accepted', 'title' => ''],
                            'From' => ['description' => 'The sender ID that you specified.', 'type' => 'string', 'example' => 'Alicloud321', 'title' => ''],
                            'To' => ['description' => 'The phone number to which the message is sent.', 'type' => 'string', 'example' => '1380000****', 'title' => ''],
                            'MessageId' => ['description' => 'The message ID.', 'type' => 'string', 'example' => '1008030300****', 'title' => ''],
                        ],
                        'title' => '',
                        'example' => '',
                    ],
                ],
            ],
            'staticInfo' => ['returnType' => 'synchronous'],
            'responseDemo' => '[{"errorExample":"","example":"{\\n  \\"ResponseCode\\": \\"OK\\",\\n  \\"NumberDetail\\": {\\n    \\"Carrier\\": \\"CMI\\",\\n    \\"Region\\": \\"HongKong\\",\\n    \\"Country\\": \\"China\\"\\n  },\\n  \\"RequestId\\": \\"F655A8D5-B967-440B-8683-DAD6FF8DE990\\",\\n  \\"Segments\\": \\"1\\",\\n  \\"ResponseDescription\\": \\"The SMS Send Request was accepted\\",\\n  \\"From\\": \\"Alicloud321\\",\\n  \\"To\\": \\"1380000****\\",\\n  \\"MessageId\\": \\"1008030300****\\"\\n}","type":"json"}]',
            'title' => 'SendMessageToGlobe',
            'description' => '- Sends messages to regions outside the Chinese mainland, including Hong Kong (China), Macao (China), and Taiwan (China). You can also send messages through the [SMS console](https://sms.console.alibabacloud.com/batch).'."\n"
                ."\n"
                .'- This operation does not support sending messages to the Chinese mainland.'."\n"
                ."\n"
                .'- You cannot use resource plans if your account has an overdue payment. Before you call this operation, check your [account balance](https://home.console.alibabacloud.com/home/dashboard/ProductAndService) and the [remaining quota](https://sms-intl.console.aliyun.com/expense) in your resource plans.'."\n"
                ."\n"
                .'- On the international site (alibabacloud.com), SMS is billed based on the submission status of messages. You are charged even if a carrier receipt indicates that the message failed to be delivered. For more information about resource plans and the pay-as-you-go billing method, see [Billing](~~173038~~).'."\n"
                ."\n"
                .'### QPS limits'."\n"
                ."\n"
                .'This operation supports up to 2,000 calls per second per account. Exceeding this limit causes requests to be dropped, resulting in service interruptions.',
            'changeSet' => [
                ['createdAt' => '2025-08-05T07:21:13.000Z', 'description' => 'Request parameters changed'],
                ['createdAt' => '2025-08-01T06:22:21.000Z', 'description' => 'OpenAPI offline'],
                ['createdAt' => '2025-08-01T03:34:45.000Z', 'description' => 'OpenAPI offline'],
            ],
            'flowControl' => [
                'flowControlList' => [
                    ['threshold' => '2000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendMessageToGlobe'],
                ],
                'product' => ['code' => 'dysms', 'title' => '短信服务'],
            ],
            'ramActions' => [
                [
                    'operationType' => 'create',
                    'ramAction' => [
                        'action' => 'dysms:SendMessageToGlobe',
                        'authLevel' => 'operate',
                        'actionConditions' => [],
                        'resources' => [
                            ['validationType' => 'always', 'product' => 'SMS', 'resourceType' => 'All Resource', 'arn' => '*'],
                        ],
                    ],
                ],
            ],
        ],
        'SendMessageWithTemplate' => [
            'summary' => 'Sends a message to the Chinese mainland by using a message template.',
            'methods' => ['post', 'get'],
            'schemes' => ['http', 'https'],
            'security' => [
                [
                    'AK' => [],
                ],
            ],
            'operationType' => 'read',
            'deprecated' => false,
            'systemTags' => [
                'operationType' => 'create',
                'riskType' => 'none',
                'chargeType' => 'paid',
                'abilityTreeCode' => '13271',
                'abilityTreeNodes' => ['FEATUREdysmsDXU0GD'],
            ],
            'parameters' => [
                [
                    'name' => 'To',
                    'in' => 'query',
                    'schema' => ['description' => 'The mobile phone number to which the message is sent. You must add the country code to the beginning of the mobile phone number. Example: 861503871\\*\\*\\*\\*.'."\n"
                        ."\n"
                        .'For more information, see [Dialing codes](https://www.alibabacloud.com/help/en/sms/product-overview/dialing-codes?spm=a2c63.p38356.0.0.367279cbwQFoeM).', 'type' => 'string', 'required' => true, 'example' => '861503871****', 'title' => ''],
                ],
                [
                    'name' => 'From',
                    'in' => 'query',
                    'schema' => ['description' => 'The signature. To query the signature, log on to the [Short Message Service (SMS) console](https://sms-intl.console.aliyun.com/overview) and navigate to the **Signatures** tab of the **Go China** page.', 'type' => 'string', 'required' => true, 'example' => 'Alicloud321', 'title' => ''],
                ],
                [
                    'name' => 'TemplateCode',
                    'in' => 'query',
                    'schema' => ['description' => 'The code of the message template. To query the code, log on to the [SMS console](https://sms-intl.console.aliyun.com/overview) and navigate to the **Templates** tab of the **Go China** page.', 'type' => 'string', 'required' => true, 'example' => 'SMS_****', 'title' => ''],
                ],
                [
                    'name' => 'TemplateParam',
                    'in' => 'query',
                    'schema' => ['description' => 'The value of the variable in the message template. If a variable exists in the template, the parameter is required.', 'type' => 'string', 'required' => false, 'example' => '{"code":"1234","product":"ytx"}', 'title' => ''],
                ],
                [
                    'name' => 'SmsUpExtendCode',
                    'in' => 'query',
                    'schema' => ['description' => 'The extension code of the MO message.', 'type' => 'string', 'required' => false, 'example' => '90999', 'title' => ''],
                ],
                [
                    'name' => 'ValidityPeriod',
                    'in' => 'query',
                    'schema' => ['description' => 'The validity period of the message.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => '', 'required' => false],
                ],
                [
                    'name' => 'ChannelId',
                    'in' => 'query',
                    'schema' => ['description' => 'The ID of the channel.', 'type' => 'string', 'required' => false, 'example' => '5739', 'title' => ''],
                ],
            ],
            'responses' => [
                200 => [
                    'schema' => [
                        'type' => 'object',
                        'properties' => [
                            'ResponseCode' => ['description' => 'The status code of the delivery request.', 'type' => 'string', 'example' => 'OK', 'title' => ''],
                            'NumberDetail' => [
                                'title' => '',
                                'description' => 'The details about the mobile phone number of the recipient.',
                                'type' => 'object',
                                'properties' => [
                                    'Carrier' => ['description' => 'The carrier that owns the mobile phone number.', 'type' => 'string', 'example' => 'China Mobile', 'title' => ''],
                                    'Region' => ['description' => 'The region to which the mobile phone number belongs.', 'type' => 'string', 'example' => 'Nanjing, Jiangsu', 'title' => ''],
                                    'Country' => ['description' => 'The country to which the mobile phone number belongs.', 'type' => 'string', 'example' => 'China', 'title' => ''],
                                ],
                                'example' => '',
                            ],
                            'ResponseDescription' => ['description' => 'The description of the delivery request status.', 'type' => 'string', 'example' => 'The SMS Send Request was accepted', 'title' => ''],
                            'Segments' => ['description' => 'The number of messages that incurred fees.', 'type' => 'string', 'example' => '1', 'title' => ''],
                            'To' => ['description' => 'The mobile phone number to which the message was sent. The dialing code was added to the beginning of the mobile phone number. Example: 861503871\\*\\*\\*\\*.', 'type' => 'string', 'example' => '861503871****', 'title' => ''],
                            'MessageId' => ['description' => 'The ID of the message.', 'type' => 'string', 'example' => '1**************3', 'title' => ''],
                            'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'F655A8D5-B967-440B-8683-DAD6FF8D23D6', 'title' => ''],
                        ],
                        'description' => '',
                        'title' => '',
                        'example' => '',
                    ],
                ],
            ],
            'staticInfo' => ['returnType' => 'synchronous'],
            'responseDemo' => '[{"errorExample":"","example":"{\\n  \\"ResponseCode\\": \\"OK\\",\\n  \\"NumberDetail\\": {\\n    \\"Carrier\\": \\"China Mobile\\",\\n    \\"Region\\": \\"Nanjing, Jiangsu\\",\\n    \\"Country\\": \\"China\\"\\n  },\\n  \\"ResponseDescription\\": \\"The SMS Send Request was accepted\\",\\n  \\"Segments\\": \\"1\\",\\n  \\"To\\": \\"861503871****\\",\\n  \\"MessageId\\": \\"1**************3\\",\\n  \\"RequestId\\": \\"F655A8D5-B967-440B-8683-DAD6FF8D23D6\\"\\n}","type":"json"}]',
            'title' => 'SendMessageWithTemplate',
            'description' => '### Usage notes'."\n"
                ."\n"
                .'You can call the SendMessageWithTemplate operation to send messages only to the Chinese mainland.',
            'requestParamsDescription' => ' ',
            'responseParamsDescription' => ' ',
            'extraInfo' => ' ',
            'changeSet' => [],
            'ramActions' => [
                [
                    'operationType' => 'create',
                    'ramAction' => [
                        'action' => 'dysms:SendMessageWithTemplate',
                        'authLevel' => 'operate',
                        'actionConditions' => [],
                        'resources' => [
                            ['validationType' => 'always', 'product' => 'SMS', 'resourceType' => 'All Resource', 'arn' => '*'],
                        ],
                    ],
                ],
            ],
            'flowControl' => [
                'flowControlList' => [
                    ['threshold' => '1500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendMessageWithTemplate'],
                ],
                'product' => ['code' => 'dysms', 'title' => '短信服务'],
            ],
        ],
        'SmsConversion' => [
            'summary' => 'Delivers one-time password (OTP) message statuses to Alibaba Cloud, which calculates and monitors OTP conversion rates.',
            'methods' => ['post', 'get'],
            'schemes' => ['http', 'https'],
            'security' => [
                [
                    'AK' => [],
                ],
            ],
            'operationType' => 'readAndWrite',
            'deprecated' => false,
            'systemTags' => [
                'operationType' => 'update',
                'riskType' => 'none',
                'chargeType' => 'free',
                'abilityTreeCode' => '13273',
                'abilityTreeNodes' => ['FEATUREdysmsL8BKKM'],
            ],
            'parameters' => [
                [
                    'name' => 'MessageId',
                    'in' => 'query',
                    'schema' => ['description' => 'The ID of the OTP message.', 'type' => 'string', 'required' => false, 'example' => '1008030300****', 'title' => ''],
                ],
                [
                    'name' => 'Delivered',
                    'in' => 'query',
                    'schema' => ['description' => 'Specifies whether customers replied to the OTP message. Valid values: true and false.', 'type' => 'boolean', 'required' => true, 'title' => '', 'example' => 'true'],
                ],
                [
                    'name' => 'ConversionTime',
                    'in' => 'query',
                    'schema' => ['description' => 'The time when the OTP message was delivered. The value is a UNIX timestamp. Unit: milliseconds.'."\n"
                        ."\n"
                        .'- If you leave the parameter empty, the current timestamp is specified by default.'."\n"
                        ."\n"
                        .'- If you specify the parameter, the timestamp must be greater than the message sending time and less than the current timestamp.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1349055900000', 'title' => ''],
                ],
                [
                    'name' => 'To',
                    'in' => 'query',
                    'schema' => ['description' => 'The mobile phone number of the recipient. You must add the dialing code to the beginning of the mobile phone number.'."\n"
                        ."\n"
                        .'For more information, see [Dialing codes](~~158400~~).', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '8521245567****'],
                ],
            ],
            'responses' => [
                200 => [
                    'schema' => [
                        'description' => '',
                        'type' => 'object',
                        'properties' => [
                            'ResponseCode' => ['description' => 'The status code. If OK is returned, the request is successful. For more information, see [Error codes](~~180674~~).', 'type' => 'string', 'example' => 'OK', 'title' => ''],
                            'ResponseDescription' => ['description' => 'The description of the status code.', 'type' => 'string', 'example' => 'OK', 'title' => ''],
                            'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'F655A8D5-B967-440B-8683-DAD6FF8D****', 'title' => ''],
                        ],
                        'title' => '',
                        'example' => '',
                    ],
                ],
            ],
            'staticInfo' => ['returnType' => 'synchronous'],
            'responseDemo' => '[{"errorExample":"","example":"{\\n  \\"ResponseCode\\": \\"OK\\",\\n  \\"ResponseDescription\\": \\"OK\\",\\n  \\"RequestId\\": \\"F655A8D5-B967-440B-8683-DAD6FF8D****\\"\\n}","type":"json"}]',
            'title' => 'SmsConversion',
            'description' => 'Metrics:'."\n"
                ."\n"
                .'- Requested OTP messages'."\n"
                ."\n"
                .'- Verified OTP messages'."\n"
                ."\n"
                .'An OTP conversion rate is calculated based on the following formula: OTP conversion rate = Number of verified OTP messages/Number of requested OTP messages.'."\n"
                ."\n"
                .'> If you call the SmsConversion operation to query OTP conversion rates, your business may be affected. We recommend that you perform the following operations:'."\n"
                .'>'."\n"
                .'> - Call the SmsConversion operation in an asynchronous manner by configuring queues or events.'."\n"
                .'>'."\n"
                .'> - Manually degrade your services or use a circuit breaker to automatically degrade services.',
            'changeSet' => [],
            'ramActions' => [
                [
                    'operationType' => 'update',
                    'ramAction' => [
                        'action' => 'dysms:SmsConversion',
                        'authLevel' => 'operate',
                        'actionConditions' => [],
                        'resources' => [
                            ['validationType' => 'always', 'product' => 'SMS', 'resourceType' => 'All Resource', 'arn' => '*'],
                        ],
                    ],
                ],
            ],
            'flowControl' => [
                'flowControlList' => [
                    ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SmsConversion'],
                ],
                'product' => ['code' => 'dysms', 'title' => '短信服务'],
            ],
        ],
    ],
    'endpoints' => [
        ['regionId' => 'cn-chengdu', 'regionName' => 'China (Chengdu)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dysmsapi.aliyuncs.com', 'endpoint' => 'dysmsapi.aliyuncs.com', 'vpc' => ''],
        ['regionId' => 'cn-hangzhou', 'regionName' => 'China (Hangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dysmsapi.aliyuncs.com', 'endpoint' => 'dysmsapi.aliyuncs.com', 'vpc' => ''],
        ['regionId' => 'cn-huhehaote', 'regionName' => 'China (Hohhot)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dysmsapi.aliyuncs.com', 'endpoint' => 'dysmsapi.aliyuncs.com', 'vpc' => ''],
        ['regionId' => 'cn-qingdao', 'regionName' => 'China (Qingdao)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dysmsapi.aliyuncs.com', 'endpoint' => 'dysmsapi.aliyuncs.com', 'vpc' => ''],
        ['regionId' => 'cn-shenzhen', 'regionName' => 'China (Shenzhen)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dysmsapi.aliyuncs.com', 'endpoint' => 'dysmsapi.aliyuncs.com', 'vpc' => ''],
        ['regionId' => 'cn-zhangjiakou', 'regionName' => 'China (Zhangjiakou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dysmsapi.aliyuncs.com', 'endpoint' => 'dysmsapi.aliyuncs.com', 'vpc' => ''],
        ['regionId' => 'cn-hongkong', 'regionName' => 'China (Hong Kong)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dysmsapi.aliyuncs.com', 'endpoint' => 'dysmsapi.aliyuncs.com', 'vpc' => 'dysmsapi-xman.vpc-proxy.aliyuncs.com'],
        ['regionId' => 'ap-southeast-1', 'regionName' => 'Singapore', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dysmsapi.ap-southeast-1.aliyuncs.com', 'endpoint' => 'dysmsapi.ap-southeast-1.aliyuncs.com', 'vpc' => 'dysmsapi-xman.vpc-proxy.aliyuncs.com'],
        ['regionId' => 'ap-southeast-5', 'regionName' => 'Indonesia (Jakarta)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dysmsapi.ap-southeast-5.aliyuncs.com', 'endpoint' => 'dysmsapi.ap-southeast-5.aliyuncs.com', 'vpc' => 'dysmsapi-xman-vpc.ap-southeast-5.aliyuncs.com'],
        ['regionId' => 'eu-central-1', 'regionName' => 'Germany (Frankfurt)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'dysmsapi.eu-central-1.aliyuncs.com', 'endpoint' => 'dysmsapi.eu-central-1.aliyuncs.com', 'vpc' => 'dysmsapi-xman-vpc.eu-central-1.aliyuncs.com'],
        ['regionId' => 'cn-shenzhen-finance-1', 'regionName' => 'China South 1 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'dysmsapi.aliyuncs.com', 'endpoint' => 'dysmsapi.aliyuncs.com', 'vpc' => ''],
        ['regionId' => 'cn-shanghai-finance-1', 'regionName' => 'China East 2 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'dysmsapi.aliyuncs.com', 'endpoint' => 'dysmsapi.aliyuncs.com', 'vpc' => ''],
        ['regionId' => 'cn-north-2-gov-1', 'regionName' => 'Beijing Government Cloud', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'dysmsapi.aliyuncs.com', 'endpoint' => 'dysmsapi.aliyuncs.com', 'vpc' => ''],
        ['regionId' => 'cn-hangzhou-finance', 'regionName' => 'China East 1 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'dysmsapi.aliyuncs.com', 'endpoint' => 'dysmsapi.aliyuncs.com', 'vpc' => ''],
        ['regionId' => 'cn-beijing-finance-1', 'regionName' => 'China North 2 Finance (Preview)', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'dysmsapi.aliyuncs.com', 'endpoint' => 'dysmsapi.aliyuncs.com', 'vpc' => ''],
    ],
    'errorCodes' => [
        ['code' => 'Account.Abnormal', 'message' => 'The status of Alibaba Cloud account is invalid.', 'http_code' => 400, 'description' => 'The account status is invalid.'],
        ['code' => 'AdminBackOssFileNotUploadError', 'message' => 'Administrator ID card portrait photo not uploaded.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AdminDateNotValid', 'message' => 'Current time is outside the administrator ID card validity period.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AdminFrontOssFileNotUploadError', 'message' => 'Administrator ID card national emblem photo not uploaded.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AdminIdcardExpdateNotMatchRegexError', 'message' => 'Invalid administrator ID card expiration time format.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AdminIdcardFrontFaceFileError', 'message' => 'Invalid format for administrator\'s ID card national emblem photo.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AdminIdcardFrontFaceNullError', 'message' => 'Administrator\'s ID card national emblem photo cannot be empty.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AdminIdcardNoNullError', 'message' => 'Administrator\'s ID number cannot be empty.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AdminIdcardNotMatchRegex', 'message' => 'Invalid administrator ID number format.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AdminIdcardPicsFileError', 'message' => 'Invalid format for administrator\'s ID card portrait photo.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AdminIdcardPicsNullError', 'message' => 'Administrator\'s ID card portrait photo cannot be empty.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AdminIdcardTypeError', 'message' => 'Invalid administrator ID card type.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AdminNameNullError', 'message' => 'Administrator\'s name cannot be empty.', 'http_code' => 400, 'description' => ''],
        ['code' => 'Amount.NotEnough', 'message' => 'The account balance is insufficient.', 'http_code' => 400, 'description' => 'Your account balance is insufficient.'],
        ['code' => 'AssocSignUnapproved', 'message' => 'Associated signature must be approved.', 'http_code' => 400, 'description' => 'The associated signature needs to use the approved signature.'],
        ['code' => 'AuthorizationLetterDateNotMatchRegex', 'message' => 'The format of the authorization letter\'s effective and expiry date is incorrect.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AuthorizationLetterDateNotValid', 'message' => 'The current time is not within the validity period of the authorization letter.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AuthorizationLetterNameNotMatchRegex', 'message' => 'The authorization letter name cannot be empty and must consist of Chinese, English characters or a combination with numbers, symbols or purely numeric input are not supported.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AuthorizationLetterNameOverLimit', 'message' => 'The authorization letter name exceeds the 100-character length limit.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AuthorizationLetterNameRepeat', 'message' => 'The authorization letter name is duplicated.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AuthorizationNotMatchRegex', 'message' => 'The authorizer name cannot be empty and currently does not support any symbols except middle dots, spaces, Chinese brackets, and English parentheses or purely numeric input.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AuthorizationOssFileNotUploadError', 'message' => 'The authorization letter file has not been uploaded.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AuthorizationOverLimit', 'message' => 'The authorizer exceeds the 1000-character length limit.', 'http_code' => 400, 'description' => ''],
        ['code' => 'BindSignDeleteFailed', 'message' => 'The qualification is bound to a signature and cannot be deleted temporarily.', 'http_code' => 400, 'description' => ''],
        ['code' => 'BusinessLicenseDateNotMatchRegexError', 'message' => 'Invalid business license expiration time format.', 'http_code' => 400, 'description' => ''],
        ['code' => 'BusinessLicenseDateNotValid', 'message' => 'Current time is outside the business license validity period.', 'http_code' => 400, 'description' => ''],
        ['code' => 'BusinessLicenseOssFileNotUploadError', 'message' => 'Business license file not uploaded.', 'http_code' => 400, 'description' => ''],
        ['code' => 'BusinessLicensePicsFileError', 'message' => 'Invalid business license file format.', 'http_code' => 400, 'description' => ''],
        ['code' => 'BusinessLicensePicsNullError', 'message' => 'Business license documents cannot be empty.', 'http_code' => 400, 'description' => ''],
        ['code' => 'BusinessLicenseTypeError', 'message' => 'Invalid business license type.', 'http_code' => 400, 'description' => ''],
        ['code' => 'card template.NotFound', 'message' => 'The resource of "card template" is not found..', 'http_code' => 400, 'description' => 'Card template not found'],
        ['code' => 'CertifyCodeError', 'message' => 'SMS verification code is incorrect.', 'http_code' => 400, 'description' => ''],
        ['code' => 'CompanyNameNullError', 'message' => 'Company name cannot be empty.', 'http_code' => 400, 'description' => ''],
        ['code' => 'CompanyTypeError', 'message' => 'Invalid company type.', 'http_code' => 400, 'description' => ''],
        ['code' => 'CompanyVerificationFailedCompanyStateInvalid', 'message' => 'Four Elements Verification Failed: Company is not in normal operation.', 'http_code' => 400, 'description' => ''],
        ['code' => 'CompanyVerificationFailedFourElementsError', 'message' => 'Four Elements Verification Failed: Authentication Failed.', 'http_code' => 400, 'description' => ''],
        ['code' => 'CompanyVerificationFailedMismatch', 'message' => 'Four Elements Verification Failed: Mismatch between Legal Representative and Company Information.', 'http_code' => 400, 'description' => 'The verification of the four elements of the enterprise fails, and the verification of the legal person and the enterprise information is inconsistent.'],
        ['code' => 'CompanyVerificationFailedNoCompany', 'message' => 'Four Elements Verification Failed: Company Not Found.', 'http_code' => 400, 'description' => ''],
        ['code' => 'CompanyVerificationFailedNoLegalPerson', 'message' => 'Four Elements Verification Failed: Legal Representative Not Found.', 'http_code' => 400, 'description' => ''],
        ['code' => 'CustNotExistError', 'message' => 'Customer\'s cloud communication information is invalid.', 'http_code' => 400, 'description' => ''],
        ['code' => 'DayLimitControl', 'message' => 'The daily volume limit is exceeded.', 'http_code' => 400, 'description' => 'The number of the sent messages has exceeded the daily limit.'],
        ['code' => 'ERROR_PARTNER_ID', 'message' => '查询影子pid结果为空或者异常', 'http_code' => 200, 'description' => 'the shadow pid query result is empty or abnormal.'],
        ['code' => 'ExtCodeInactive', 'message' => 'No major customer extension code has been activated.', 'http_code' => 400, 'description' => 'Large customer extension code not turned on'],
        ['code' => 'ExtCodeIsActive', 'message' => 'The custom extension code is in use and cannot be modified.', 'http_code' => 400, 'description' => 'The custom extension code is in use and cannot be modified.'],
        ['code' => 'ExtCodeNotFound', 'message' => 'Custom extension code does not exist.', 'http_code' => 400, 'description' => 'Custom extension code does not exist'],
        ['code' => 'ExtCodeNotReady', 'message' => 'The custom extension code control has not been fully implemented. Please try again later.', 'http_code' => 400, 'description' => 'Custom extension code control is not effective, please try again later'],
        ['code' => 'FILTER', 'message' => '关键字拦截', 'http_code' => 400, 'description' => 'We recommend that you modify the message content.'],
        ['code' => 'Forbidden.Operation', 'message' => 'You are not authorized to perform the operation.', 'http_code' => 400, 'description' => 'You are not authorized to perform this operation.'],
        ['code' => 'ForbiddenAction', 'message' => 'Access to the account is denied. Please contact the administrator.', 'http_code' => 200, 'description' => 'No access, please contact administrator.'],
        ['code' => 'GrayCustAccessError', 'message' => 'This customer is not authorized to use the OpenAPI. Please contact support for whitelisting.', 'http_code' => 400, 'description' => ''],
        ['code' => 'IntlSmsService.Unvalabe', 'message' => 'The international SMS service has not been activated. You cannot create an international SMS template.', 'http_code' => 400, 'description' => 'The international SMS service has not been activated. You cannot create an international SMS template.'],
        ['code' => 'InvalidAction.NotFound', 'message' => 'The specified API is not found.', 'http_code' => 400, 'description' => 'The specified API action is not found'],
        ['code' => 'InvalidApplySceneContent', 'message' => 'For certain signature sources, the '."\n"
            .'applySceneContent should be an HTTP or HTTPS link.', 'http_code' => 400, 'description' => 'invalid application scenario, under some signature sources,'."\n"
            .'The application scenario should be an HTTP or HTTPS link.'],
        ['code' => 'InvalidApplySceneContent', 'message' => 'For certain signature sources, the '."\n"
            .'applySceneContent should be an HTTP or HTTPS link.', 'http_code' => 400, 'description' => 'invalid application scenario. under some signature sources, the application scenario should be an http or https link.'],
        ['code' => 'InvalidMoreData', 'message' => 'Specified parameter MoreData is not valid.', 'http_code' => 400, 'description' => 'The uploaded more information is invalid.'],
        ['code' => 'InvalidParam.PageSize', 'message' => 'PageSize must be less than or equal to 50.', 'http_code' => 400, 'description' => 'pageSize must be less than or equal to 50'],
        ['code' => 'InvalidParam.PhoneNumber', 'message' => 'Incorrect phone number format.', 'http_code' => 400, 'description' => 'Incorrect phone number format'],
        ['code' => 'InvalidParam.SendDate', 'message' => 'Only the last 30 days can be queried.', 'http_code' => 400, 'description' => 'Only the data of the last 30 days can be queried'],
        ['code' => 'InvalidParameter', 'message' => 'Parameter invalid.', 'http_code' => 400, 'description' => 'Parameter error, please check the parameter'],
        ['code' => 'InvalidParameter', 'message' => 'At most, only one parameter can be passed among bizCardId, bizSmsId, and bizDigitId.', 'http_code' => 400, 'description' => 'At most, only one parameter can be passed among bizCardId, bizSmsId, and bizDigitId.'],
        ['code' => 'InvalidParameter.Channel', 'message' => 'The specified Channel is invalid.', 'http_code' => 400, 'description' => 'The value of the Channel parameter is invalid.'],
        ['code' => 'InvalidParameter.endDate', 'message' => 'The specified parameter endDate is not valid.', 'http_code' => 400, 'description' => 'The input parameter endDate does not meet the parameter specification.'],
        ['code' => 'InvalidParameter.ExternalId', 'message' => 'The specified ExternalId is invalid.', 'http_code' => 400, 'description' => 'The value of the ExternalId parameter is invalid.'],
        ['code' => 'InvalidParameter.From', 'message' => 'The specified From is invalid.', 'http_code' => 400, 'description' => 'The value of the From parameter is invalid.'],
        ['code' => 'InvalidParameter.pageSize', 'message' => 'PageSize must be less than or equal to 50.', 'http_code' => 400, 'description' => 'pageSize must be less than or equal to 50'],
        ['code' => 'InvalidParameter.phoneNumber', 'message' => 'Incorrect phone number format.', 'http_code' => 400, 'description' => ''],
        ['code' => 'InvalidParameter.sendDate', 'message' => 'Only the last 30 days can be queried.', 'http_code' => 400, 'description' => 'Only the data of the last 30 days can be queried'],
        ['code' => 'InvalidParameter.SenderId', 'message' => 'The specified SenderId is invalid.', 'http_code' => 400, 'description' => 'The value of the SenderId parameter is invalid.'],
        ['code' => 'InvalidParameter.SMS_CARD_MESSAGE NO ACCESS', 'message' => 'The user has not activated card SMS within the SMS service.', 'http_code' => 400, 'description' => 'The user has not activated the card SMS in the SMS service.'],
        ['code' => 'InvalidParameter.To', 'message' => 'The specified To is invalid.', 'http_code' => 400, 'description' => 'The value of the To parameter is invalid.'],
        ['code' => 'InvalidParameter.To', 'message' => 'The specified parameter To is not valid.', 'http_code' => 400, 'description' => 'The to field of the passed-in parameter is invalid.'],
        ['code' => 'InvalidParameter.Type', 'message' => 'The specified Type is invalid.', 'http_code' => 400, 'description' => 'The value of the Type parameter is invalid.'],
        ['code' => 'InvalidQualification', 'message' => 'The qualification should be approved.', 'http_code' => 400, 'description' => 'Invalid qualification, qualification should be approved.'],
        ['code' => 'InvalidSignName', 'message' => 'The signature cannot contain spaces, special '."\n"
            .'symbols, or all numbers.', 'http_code' => 400, 'description' => 'The signature cannot contain special characters such as simplified Chinese, English, or spaces other than digits, and cannot be all digits.'],
        ['code' => 'InvalidTemplateContent.Format', 'message' => 'Invalid template content format.', 'http_code' => 400, 'description' => 'The template content is not in the correct format.'],
        ['code' => 'InvalidTemplateRule', 'message' => 'The template variable format is non-standard. Please refer to the variable format specifications in the help documentation.', 'http_code' => 400, 'description' => 'The template variable does not meet the specifications. Please check the SMS template specification document and pass in the template variable that meets the requirements.'],
        ['code' => 'InvalidTemplateRule.Format', 'message' => 'The template variable does not conform to the specification, please check the https://help.aliyun.com/zh/sms/user-guide/message-template-specifications/.', 'http_code' => 400, 'description' => 'The template variable does not conform to the specification, please check the https://help.aliyun.com/zh/sms/user-guide/message-template-specifications/'],
        ['code' => 'InvalidTemplateRule.Format', 'message' => 'The parameter TemplateRule format must be JSON.', 'http_code' => 400, 'description' => 'Template variable rules must be filled with JSON-formatted data.'],
        ['code' => 'InvalidTimeStamp.Expired', 'message' => 'The specified timestamp has expired.', 'http_code' => 400, 'description' => 'The specified timestamp is expired'],
        ['code' => 'InvalidVersion', 'message' => 'Invalid API version.', 'http_code' => 400, 'description' => 'The specified API version is invalid'],
        ['code' => 'INVALID_PARAMETERS', 'message' => 'The format of MessageId is wrong.', 'http_code' => 200, 'description' => 'The parameter is incorrect. Check whether the parameter is correct.'],
        ['code' => 'isp.GATEWAY_ERROR', 'message' => 'Unexpected gateway error.', 'http_code' => 400, 'description' => 'Unexpected gateway error'],
        ['code' => 'isp.RAM_PERMISSION_DENY', 'message' => 'RAM权限DENY', 'http_code' => 400, 'description' => 'We recommend that you contact SMS technical support to fix the issue.'],
        ['code' => 'isp.RAM_PERMISSION_DENY', 'message' => 'The RAM user is not authorized.', 'http_code' => 400, 'description' => 'The RAM user is not authorized.'],
        ['code' => 'isp.SYSTEM_ERROR', 'message' => '系统错误', 'http_code' => 500, 'description' => 'We recommend that you contact SMS technical support to fix the issue.'],
        ['code' => 'isp.SYSTEM_ERROR', 'message' => 'A system error occurred.', 'http_code' => 500, 'description' => 'Unexpected system error occurred'],
        ['code' => 'isv.ACCOUNT_ABNORMAL', 'message' => '账户异常', 'http_code' => 400, 'description' => 'We recommend that you contact SMS technical support to confirm your account.'],
        ['code' => 'isv.ACCOUNT_ABNORMAL', 'message' => 'The account is in an abnormal state.', 'http_code' => 400, 'description' => 'The specified account status is abnormal'],
        ['code' => 'isv.ACCOUNT_NOT_EXISTS', 'message' => 'Account not found', 'http_code' => 404, 'description' => 'We recommend that you open an account.'],
        ['code' => 'isv.ACCOUNT_NOT_EXISTS', 'message' => 'The specified account does not exist.', 'http_code' => 400, 'description' => 'The specified account does not exist.'],
        ['code' => 'isv.AMOUNT_NOT_ENOUGH', 'message' => '账户余额不足', 'http_code' => 400, 'description' => 'We recommend that you add funds to the account.'],
        ['code' => 'isv.AMOUNT_NOT_ENOUGH', 'message' => 'The resource plan is unavailable or your account does not have a sufficient balance.', 'http_code' => 400, 'description' => 'The resource plan is unavailable or your account does not have a sufficient balance.'],
        ['code' => 'isv.BLACK_KEY_CONTROL_LIMIT', 'message' => '黑名单管控', 'http_code' => 400, 'description' => 'We recommend that you contact SMS technical support to remove your account from the blacklist.'],
        ['code' => 'isv.BLACK_KEY_CONTROL_LIMIT', 'message' => 'The specified template variable includes one or more blocked keywords.', 'http_code' => 400, 'description' => 'The specified template variable includes one or more blocked keywords.'],
        ['code' => 'isv.BUSINESS_LIMIT_CONTROL', 'message' => '业务限流', 'http_code' => 403, 'description' => 'We recommend that you contact SMS technical support to fix the issue.'],
        ['code' => 'isv.BUSINESS_LIMIT_CONTROL', 'message' => 'Cloud communications throttling has been triggered.', 'http_code' => 400, 'description' => 'The business limit is reached'],
        ['code' => 'isv.CUSTOMER_REFUSED', 'message' => 'The user refuses to receive marketing messages.', 'http_code' => 400, 'description' => 'Customer refused to receive specified MKT sms'],
        ['code' => 'isv.DAY_LIMIT_CONTROL', 'message' => 'The daily threshold of the messages that the user can send has been reached.', 'http_code' => 400, 'description' => 'The daily threshold of the messages that the user can send has been reached.'],
        ['code' => 'isv.DENY_IP_RANGE', 'message' => 'SMS does not support the region with the source IP address.', 'http_code' => 400, 'description' => 'Not supported source IP range for SMS'],
        ['code' => 'isv.DOMESTIC_NUMBER_NOT_SUPPORTED', 'message' => 'Templates for regions outside the Chinese mainland cannot be used for messages sent to numbers in the Chinese mainland.', 'http_code' => 400, 'description' => 'International template is not supported for China-mainland number'],
        ['code' => 'isv.ERROR_EMPTY_FILE', 'message' => 'The file uploaded is empty.', 'http_code' => 400, 'description' => 'The file uploaded is empty'],
        ['code' => 'isv.ERROR_SIGN_NOT_DELETE', 'message' => 'Signatures pending approval cannot be deleted.', 'http_code' => 400, 'description' => 'Not allow to delete sign name in approval process'],
        ['code' => 'isv.ERROR_SIGN_NOT_MODIFY', 'message' => 'Effective signatures cannot be modified.', 'http_code' => 400, 'description' => 'Not allow to modify effective sign name'],
        ['code' => 'isv.ERROR_TEMPLATE_NOT_DELETE', 'message' => 'Templates pending approval cannot be deleted.', 'http_code' => 400, 'description' => 'Not allow to delete template in approval process'],
        ['code' => 'isv.ERROR_TEMPLATE_NOT_MODIFY', 'message' => 'Approved templates cannot be modified.', 'http_code' => 400, 'description' => 'Not allow to modify template effective process'],
        ['code' => 'isv.EXTEND_CODE_ERROR', 'message' => 'SmsUpExtendCode should be unique for each signature.', 'http_code' => 400, 'description' => 'SmsUpExtendCode should be unique for each sign name'],
        ['code' => 'ISV.Forbidden', 'message' => 'SubUser not authorized to operate on the specified resource.', 'http_code' => 200, 'description' => ''],
        ['code' => 'isv.INVALID_JSON_PARAM', 'message' => '参数格式错误,请修改为字符串值', 'http_code' => 400, 'description' => 'The specified parameter is invalid. Change the parameter value to a character string.'],
        ['code' => 'isv.INVALID_JSON_PARAM', 'message' => 'The JSON string failed to be parsed.', 'http_code' => 400, 'description' => 'The JSON string failed to be parsed.'],
        ['code' => 'isv.INVALID_PARAMETERS', 'message' => '参数异常', 'http_code' => 400, 'description' => 'We recommend that you specify valid parameters.'],
        ['code' => 'isv.INVALID_PARAMETERS', 'message' => 'The input parameters are invalid.', 'http_code' => 400, 'description' => 'The input parameters are invalid.'],
        ['code' => 'isv.MOBILE_COUNT_OVER_LIMIT', 'message' => '手机号码数量超过限制', 'http_code' => 400, 'description' => 'We recommend that you reduce mobile phone numbers.'],
        ['code' => 'isv.MOBILE_COUNT_OVER_LIMIT', 'message' => 'The number of mobile phone numbers exceeds 1,000.', 'http_code' => 400, 'description' => 'The number of mobile phone numbers exceeds 1,000.'],
        ['code' => 'isv.MOBILE_NUMBER_ILLEGAL', 'message' => '手机号码格式错误', 'http_code' => 400, 'description' => 'We recommend that you specify valid mobile phone numbers.'],
        ['code' => 'isv.MOBILE_NUMBER_ILLEGAL', 'message' => 'The format of the specified mobile phone number is invalid.', 'http_code' => 400, 'description' => 'The format of the specified mobile phone number is invalid.'],
        ['code' => 'isv.NOT_SUPPORTED_COUNTRY', 'message' => '暂不支持该国家的国际短信发送', 'http_code' => 400, 'description' => 'The international SMS sending of this country is not supported.'],
        ['code' => 'isv.NO_AVAILABLE_SHORT_URL', 'message' => 'No available short URLs in the account.', 'http_code' => 400, 'description' => 'No available short URL found'],
        ['code' => 'isv.OUT_OF_SERVICE', 'message' => '业务停机', 'http_code' => 400, 'description' => 'We recommend that you contact SMS technical support to fix the issue.'],
        ['code' => 'isv.OUT_OF_SERVICE', 'message' => 'The account has been out of service due to insufficient balance.', 'http_code' => 400, 'description' => 'Account is out of service due to insufficient balance'],
        ['code' => 'isv.PARAM_LENGTH_LIMIT', 'message' => '参数超出长度限制', 'http_code' => 400, 'description' => 'We recommend that you modify the parameter length.'],
        ['code' => 'isv.PARAM_LENGTH_LIMIT', 'message' => 'The length of the specified variable exceeds the limit.', 'http_code' => 400, 'description' => 'The length of the specified variable exceeds the limit.'],
        ['code' => 'isv.PARAM_NOT_SUPPORT_URL', 'message' => '变量不支持传入URL', 'http_code' => 400, 'description' => 'URLs are not allowed in variables.'],
        ['code' => 'isv.PARAM_NOT_SUPPORT_URL', 'message' => 'URLs cannot be specified for the parameter.', 'http_code' => 400, 'description' => 'Not support URL in parameter'],
        ['code' => 'isv.PHONENUMBERS_OVER_LIMIT', 'message' => 'The number of mobile phone numbers exceeds 50,000.', 'http_code' => 400, 'description' => 'The number of mobile phone numbers exceeds 50,000.'],
        ['code' => 'isv.PRODUCT_UNSUBSCRIBE', 'message' => '产品未开通', 'http_code' => 400, 'description' => 'We recommend that you purchase the service.'],
        ['code' => 'isv.PRODUCT_UNSUBSCRIBE', 'message' => 'SMS has not been activated.', 'http_code' => 400, 'description' => 'SMS service not activated'],
        ['code' => 'isv.PRODUCT_UN_SUBSCRIPT', 'message' => '未开通云通信产品的阿里云客户', 'http_code' => 401, 'description' => 'We recommend that you activate Cloud Communications.'],
        ['code' => 'isv.PRODUCT_UN_SUBSCRIPT', 'message' => 'SMS has not been activated.', 'http_code' => 400, 'description' => 'SMS service not activated'],
        ['code' => 'ISV.PRODUCT_UN_SUBSCRIPT', 'message' => 'SMS service not activated.', 'http_code' => 200, 'description' => 'Alibaba Cloud customers who have not activated cloud communication products'],
        ['code' => 'isv.SECURITY_FROZEN_ACCOUNT', 'message' => 'The specified account has been frozen.', 'http_code' => 400, 'description' => 'The specified account is frozen'],
        ['code' => 'isv.SHORTURL_DOMAIN_EMPTY', 'message' => '创建失败,请先提交该链接的一级域名报备', 'http_code' => 200, 'description' => 'Create failed. Submit your original domain name for approval first.'],
        ['code' => 'isv.SHORTURL_DOMAIN_EMPTY', 'message' => 'Unregistered original URL domain.', 'http_code' => 400, 'description' => 'Unregistered original URL domain'],
        ['code' => 'isv.SHORTURL_NAME_ILLEGAL', 'message' => '短链服务名称不能超过13个字符长度', 'http_code' => 200, 'description' => 'The activity name of the short URL cannot exceed 13 characters in length.'],
        ['code' => 'isv.SHORTURL_NAME_ILLEGAL', 'message' => 'A short URL name can contain a maximum of 13 characters.', 'http_code' => 400, 'description' => 'Short URL name over max length'],
        ['code' => 'isv.SHORTURL_NOT_FOUND', 'message' => '没有可删除的短链', 'http_code' => 200, 'description' => 'No short URL can be deleted.'],
        ['code' => 'isv.SHORTURL_OVER_LIMIT', 'message' => 'The maximum number of short URLs that can be applied in a day has been exceeded.', 'http_code' => 400, 'description' => 'The max count of short URL registered daily is reached'],
        ['code' => 'isv.SHORTURL_STILL_AVAILABLE', 'message' => '原始链接生成的短链仍在有效期内', 'http_code' => 200, 'description' => 'The short URL is still valid.'],
        ['code' => 'isv.SHORTURL_STILL_AVAILABLE', 'message' => 'The short URL is still within the effective period.', 'http_code' => 400, 'description' => 'The short URL is still available'],
        ['code' => 'isv.SHORTURL_TIME_ILLEGAL', 'message' => '短链有效期期限超过限制', 'http_code' => 200, 'description' => 'The validity period of the short URL is valid.'],
        ['code' => 'isv.SHORTURL_TIME_ILLEGAL', 'message' => 'EffectiveDays is over the limit.', 'http_code' => 400, 'description' => 'Over the max EffectiveDays'],
        ['code' => 'isv.SHORTURL_URL_NAME_REPEAT', 'message' => '短链服务名称重复', 'http_code' => 200, 'description' => 'The activity name of the short URL already exists.'],
        ['code' => 'isv.SIGN_COUNT_OVER_LIMIT', 'message' => 'The maximum number of signatures that can be applied in a day has been exceeded.', 'http_code' => 400, 'description' => 'The max count of sign name registered daily is reached'],
        ['code' => 'isv.SIGN_FILE_LIMIT', 'message' => 'The specified file is over the size limit.', 'http_code' => 400, 'description' => 'The specified file is over max size'],
        ['code' => 'isv.SIGN_NAME_ILLEGAL', 'message' => 'The specified signature does not exist or is blocked.', 'http_code' => 400, 'description' => 'The specified signature does not exist or is blocked.'],
        ['code' => 'isv.SIGN_OVER_LIMIT', 'message' => 'The maximum number of signatures has been exceeded.', 'http_code' => 400, 'description' => 'The specified signature over max length'],
        ['code' => 'isv.SMS_CONTENT_ILLEGAL', 'message' => 'The message content is invalid.', 'http_code' => 400, 'description' => 'The message content is invalid.'],
        ['code' => 'isv.SMS_OVER_LIMIT', 'message' => 'A maximum of 100 templates or signatures can be applied.', 'http_code' => 400, 'description' => 'The max count of sign name or template registered daily is reached'],
        ['code' => 'isv.SMS_OVER_LIMIT', 'message' => '单日最多申请模板或签名100条', 'http_code' => 200, 'description' => 'Apply for up to 100 templates or signatures in a single day.'],
        ['code' => 'isv.SMS_SIGNATURE_ILLEGAL', 'message' => '该账号下找不到对应签名', 'http_code' => 400, 'description' => 'The specified signature is not found in the account.'],
        ['code' => 'isv.SMS_SIGNATURE_ILLEGAL', 'message' => 'The specified signature does not exist or is blocked.', 'http_code' => 400, 'description' => 'The specified signature does not exist or is blocked.'],
        ['code' => 'isv.SMS_SIGNATURE_SCENE_ILLEGAL', 'message' => 'The signature and template type does not match.', 'http_code' => 400, 'description' => 'Sign Name type and template type mismatch'],
        ['code' => 'isv.SMS_SIGN_EMOJI_ILLEGAL', 'message' => 'Emojis are not supported.', 'http_code' => 400, 'description' => 'Emoji is not supported'],
        ['code' => 'isv.SMS_SIGN_ILLEGAL', 'message' => 'The specified signature does not exist or is blocked.', 'http_code' => 400, 'description' => 'The specified signature does not exist or is blocked.'],
        ['code' => 'isv.SMS_TEMPLATE_ILLEGAL', 'message' => '该账号下找不到对应模板', 'http_code' => 400, 'description' => 'The specified template is not found in the account.'],
        ['code' => 'isv.SMS_TEMPLATE_ILLEGAL', 'message' => 'The specified message template does not exist or is blocked.', 'http_code' => 400, 'description' => 'The specified message template does not exist or is blocked.'],
        ['code' => 'isv.SMS_TEST_NUMBER_LIMIT', 'message' => 'Test templates can only be sent to authorized phone numbers.', 'http_code' => 400, 'description' => 'Test template can not send to authorized phone'],
        ['code' => 'isv.SMS_TEST_SIGN_TEMPLATE_LIMIT', 'message' => 'Test signatures must be used together with test templates.', 'http_code' => 400, 'description' => 'Test sign name must use together with test template'],
        ['code' => 'isv.SMS_TEST_TEMPLATE_PARAMS_ILLEGAL', 'message' => 'Parameters in test templates support only numeric values that consist of 4 to 6 digits.', 'http_code' => 400, 'description' => 'Only 4~6 numeric supported for test template'],
        ['code' => 'isv.SOURCEURL_OVER_LIMIT', 'message' => 'The maximum number of characters in a source URL name has been exceeded.', 'http_code' => 400, 'description' => 'Source URL name over max length'],
        ['code' => 'isv.TEMPLATE_COUNT_OVER_LIMIT', 'message' => 'The maximum number of templates that can be applied in a day has been reached.', 'http_code' => 400, 'description' => 'The max count of template registered daily is reached'],
        ['code' => 'isv.TEMPLATE_MISSING_PARAMETERS', 'message' => 'The variable in the template is empty.', 'http_code' => 400, 'description' => 'The variable in the template is empty.'],
        ['code' => 'isv.TEMPLATE_OVER_LIMIT', 'message' => 'The maximum number of characters in a template has been exceeded.', 'http_code' => 400, 'description' => 'The specified template content over max length'],
        ['code' => 'isv.TEMPLATE_PARAMS_ILLEGAL', 'message' => '模版变量里包含非法字符,如emoji表情等', 'http_code' => 400, 'description' => 'Template parameters include invalid characters such as emojis.'],
        ['code' => 'isv.TEMPLATE_PARAMS_ILLEGAL', 'message' => 'The specified parameter value is of an invalid type.', 'http_code' => 400, 'description' => 'The input parameters are invalid is miss matched with template'],
        ['code' => 'lc.INVOKE_HSF_ERROR', 'message' => '[lc.INVOKE_HSF_ERROR].', 'http_code' => 500, 'description' => 'Call interface exception'],
        ['code' => 'LegalBackOssFileNotUploadError', 'message' => 'Legal person ID card portrait photo not uploaded.', 'http_code' => 400, 'description' => ''],
        ['code' => 'LegalDateNotValid', 'message' => 'Current time is outside the legal person ID card validity period.', 'http_code' => 400, 'description' => ''],
        ['code' => 'LegalFrontOssFileNotUploadError', 'message' => 'Legal person ID card national emblem photo not uploaded.', 'http_code' => 400, 'description' => ''],
        ['code' => 'LegalIdCardNoNullError', 'message' => 'Legal person\'s ID number cannot be empty.', 'http_code' => 400, 'description' => ''],
        ['code' => 'LegalIdCardNotMatchRegex', 'message' => 'Invalid legal person ID number format.', 'http_code' => 400, 'description' => ''],
        ['code' => 'LegalPersonIdcardEfftimeNotMatchRegexError', 'message' => 'Invalid legal person ID card expiration time format.', 'http_code' => 400, 'description' => ''],
        ['code' => 'LegalPersonIdcardTypeError', 'message' => 'Invalid legal person ID card type.', 'http_code' => 400, 'description' => ''],
        ['code' => 'LegalPersonNameNullError', 'message' => 'Legal person\'s name cannot be empty.', 'http_code' => 400, 'description' => ''],
        ['code' => 'MissApplySceneContent', 'message' => 'In some signature sources, the applySceneContent is required.', 'http_code' => 400, 'description' => 'Under some signature sources, the application scenario is required.'],
        ['code' => 'MissingParameter', 'message' => 'The ResourceId and Tag lists cannot be empty at the same time.', 'http_code' => 400, 'description' => 'Resource list (ResourceId) and tag list (Tag) cannot be empty at the same time'],
        ['code' => 'MissingParameter.id', 'message' => 'Parameter "id" which is mandatory for the request is not provided.', 'http_code' => 400, 'description' => 'The request is missing the required parameter id field'],
        ['code' => 'MissingParameter.Message', 'message' => 'You must specify Message.', 'http_code' => 400, 'description' => 'The Message parameter is missing.'],
        ['code' => 'MissingParameter.To', 'message' => 'You must specify To.', 'http_code' => 400, 'description' => 'The To parameter is missing.'],
        ['code' => 'MissingSignName', 'message' => 'The signature name cannot be empty.', 'http_code' => 400, 'description' => 'Signature name cannot be empty'],
        ['code' => 'MissingTemplateName', 'message' => 'The template  name cannot be empty.', 'http_code' => 404, 'description' => 'Template name cannot be empty.'],
        ['code' => 'MonthLimitControl', 'message' => 'The monthly volume limit is exceeded.', 'http_code' => 400, 'description' => 'The number of the sent messages has exceeded the monthly limit.'],
        ['code' => 'NotEnterpriseCertifyCustCheckError', 'message' => 'Non-enterprise certified customers are not allowed to access.', 'http_code' => 400, 'description' => ''],
        ['code' => 'OneExtCodeMultipleSign', 'message' => 'One code with multiple signature error, please verify.', 'http_code' => 400, 'description' => 'One extension code multiple sign error, please check'],
        ['code' => 'OrderDefinition.NotExist', 'message' => 'The work order scenario definition does not exist.', 'http_code' => 400, 'description' => 'Job scene definition does not exist'],
        ['code' => 'OrganizationCodeNullError', 'message' => 'Unified Social Credit Code cannot be empty.', 'http_code' => 400, 'description' => ''],
        ['code' => 'OrganizationCodeOverLimit', 'message' => 'The organization code is limited to 150 characters.', 'http_code' => 400, 'description' => 'Social credit code is not allowed to exceed 150 characters'],
        ['code' => 'OssBiztypeNotSupportError', 'message' => 'Retrieving OSS configuration does not support this biz type.', 'http_code' => 400, 'description' => ''],
        ['code' => 'OtherFileTypeError', 'message' => 'Invalid file format for other documents.', 'http_code' => 400, 'description' => ''],
        ['code' => 'OtherOssFileNotUploadError', 'message' => 'Other files not uploaded.', 'http_code' => 400, 'description' => ''],
        ['code' => 'OutOfService', 'message' => 'The account is suspended.', 'http_code' => 400, 'description' => ''],
        ['code' => 'ParameterMismatch.ThirdParty', 'message' => 'The type of signature, whether for personal use or for a third party, should be consistent with the qualifications.', 'http_code' => 400, 'description' => 'Whether the signature is used by a third party should be consistent with the qualification.'],
        ['code' => 'PARAMS_ILLEGAL', 'message' => 'Invalid parameter value.', 'http_code' => 400, 'description' => 'The parameter input is invalid'],
        ['code' => 'PhoneNoCertifyCodeNullError', 'message' => 'Phone number and verification code cannot be empty.', 'http_code' => 400, 'description' => ''],
        ['code' => 'PhoneNumber.Illegal', 'message' => 'The specified phone number is invalid.', 'http_code' => 400, 'description' => 'The mobile phone number is invalid.'],
        ['code' => 'ProxyAuthorizationNotMatchRegex', 'message' => 'The authorized party name currently does not support any symbols except middle dots, spaces, Chinese brackets, and English parentheses or purely numeric input.', 'http_code' => 400, 'description' => ''],
        ['code' => 'ProxyAuthorizationOverLimit', 'message' => 'The authorized party exceeds the 1000-character length limit.', 'http_code' => 400, 'description' => ''],
        ['code' => 'QualificationNameAlreadyExist', 'message' => 'The qualification name already exists. Please modify and resubmit.', 'http_code' => 400, 'description' => ''],
        ['code' => 'QualificationNameNotMatchRegex', 'message' => 'Qualification names must be in Chinese, English, or alphanumeric combinations. Symbols or pure numbers are not supported.', 'http_code' => 400, 'description' => ''],
        ['code' => 'QualificationNameNullError', 'message' => 'Qualification name cannot be empty.', 'http_code' => 400, 'description' => ''],
        ['code' => 'QualificationNotComplete', 'message' => 'The qualification elements are incomplete.', 'http_code' => 400, 'description' => 'The qualification elements are incomplete, and the missing elements are []'],
        ['code' => 'QualificationNotExist', 'message' => 'Can\'t query qualification information.', 'http_code' => 400, 'description' => 'Can\'t query qualification information'],
        ['code' => 'QualificationNotExist', 'message' => 'Qualification does not exist.', 'http_code' => 400, 'description' => ''],
        ['code' => 'QualificationNotFound', 'message' => 'Qualification does not exist.', 'http_code' => 404, 'description' => 'Qualification does not exist.'],
        ['code' => 'SameQualificationGroupError', 'message' => 'A qualification with the same company and administrator information already exists.', 'http_code' => 400, 'description' => ''],
        ['code' => 'ServiceNotOpened', 'message' => 'This product service is not opened.', 'http_code' => 400, 'description' => 'Product service not activated'],
        ['code' => 'SignatureDoesNotMatch', 'message' => 'The signature generated by the client does not match the server.', 'http_code' => 400, 'description' => 'Signature does not matches'],
        ['code' => 'SignatureNonceUsed', 'message' => 'The specified signature has been used.', 'http_code' => 400, 'description' => 'The specified signature is been used'],
        ['code' => 'SignatureNotFound', 'message' => 'The signature does not exist.', 'http_code' => 404, 'description' => 'The corresponding signature cannot be found under the account.'],
        ['code' => 'SIGNATURE_BLACKLIST', 'message' => 'The sign name is intercepted based on the specified risk control strategies.', 'http_code' => 400, 'description' => 'The sign name is intercepted based on the specified risk control strategies.'],
        ['code' => 'SignName.Exists', 'message' => 'Sorry, this signature already exists and cannot be applied for again.', 'http_code' => 400, 'description' => 'Sorry, this signature already exists and cannot be reapplied.'],
        ['code' => 'SignNotMatchRegex', 'message' => 'The signature length is limited to 2-12 characters and does not support some special characters.', 'http_code' => 400, 'description' => ''],
        ['code' => 'SignNumOverLimit', 'message' => 'The signature exceeds the limit of 100 entries.', 'http_code' => 400, 'description' => ''],
        ['code' => 'SmsAuthorizationLetterNotExist', 'message' => 'Authorization does not belong to the customer.', 'http_code' => 400, 'description' => ''],
        ['code' => 'SmsAuthorizationLetterNotMatch', 'message' => 'Please bind the available authorization letter whose the social credit code is same  to the the social credit code  of qualification.', 'http_code' => 400, 'description' => 'Please bind the available authorization letter whose the social credit code is same  to the the social credit code  of qualification'],
        ['code' => 'SmsPassedAuthorizationLetterNotMatch', 'message' => 'Please bind audited authorization letter whose the social credit code is same  to the the social credit code  of qualification.', 'http_code' => 400, 'description' => 'Please bind and unify the qualification authorization letter with the same and available social credit code.'."\n"],
        ['code' => 'SmsQualificationNotPassed', 'message' => 'The qualification has not been approved and cannot be bound to the signature.', 'http_code' => 400, 'description' => 'The qualification has not been approved and cannot be bound to the signature.'],
        ['code' => 'SmsQualificationRegisterFailed', 'message' => 'The registration of the current qualification fails. Please modify the qualification and re-bind the qualification before completing the signature registration process again.', 'http_code' => 400, 'description' => 'The registration of the current qualification fails. Please modify the qualification and re-bind the qualification before completing the signature registration process again.'],
        ['code' => 'SmsSignatureNotExist', 'message' => 'Signature does not exist.', 'http_code' => 400, 'description' => 'Signature does not exist'],
        ['code' => 'SmsSignatureNotFound', 'message' => 'The associated SMS signature does not exist.', 'http_code' => 404, 'description' => 'The associated SMS signature does not exist.'],
        ['code' => 'SmsSignNotAuthorized', 'message' => 'The signature is not within the scope of the authorization.', 'http_code' => 400, 'description' => 'The signature is not within the scope of the authorization.'],
        ['code' => 'SmsSignNotAuthorized', 'message' => 'the signature is not in the sign scope of the authorization letter.', 'http_code' => 400, 'description' => 'The signature is not within the scope of the authorization.'],
        ['code' => 'SMS_STATUS_ILLEGAL', 'message' => 'When replacing the qualification and power of attorney of the signature, the signature status must be approved.', 'http_code' => 400, 'description' => 'When replacing the qualification and power of attorney of the signature, the signature status must be approved.'],
        ['code' => 'TemplateNotFound', 'message' => 'The template does not exist.', 'http_code' => 404, 'description' => ''],
        ['code' => 'TemplateParameterCountIllegal', 'message' => 'The verification code template only supports 1 verification code as a variable', 'http_code' => 400, 'description' => 'Verification code templates support only one variable, which must be a verification code.'],
        ['code' => 'TemplateVarLimitExceeded', 'message' => 'The verification code template only supports one variable.', 'http_code' => 400, 'description' => 'The verification code template only supports one variable.'],
        ['code' => 'template_code.NotFound', 'message' => 'The resource of "template_code" is not found..', 'http_code' => 400, 'description' => 'Could not find template code'],
        ['code' => 'template_parameter_count_illegal', 'message' => 'Only one parameter is supported in an OTP template.', 'http_code' => 400, 'description' => 'Only one parameter supported for OTP template'],
        ['code' => 'ThreeAbnormal', 'message' => 'Three party anomaly.', 'http_code' => 400, 'description' => 'tripartite anomaly'],
        ['code' => 'Unknown.CountryCode', 'message' => 'The specified country code is invalid.', 'http_code' => 400, 'description' => 'The country code is unknown.'],
        ['code' => 'Unsupport.CountryCode', 'message' => 'The specified country code is not supported.', 'http_code' => 400, 'description' => 'The country code is not supported.'],
        ['code' => 'VALVE:D_MC', 'message' => '重复过滤', 'http_code' => 400, 'description' => 'We recommend that you reduce the number of messages sent per day.'],
        ['code' => 'VALVE:H_MC', 'message' => '重复过滤', 'http_code' => 400, 'description' => 'We recommend that you reduce the number of messages sent per hour.'],
        ['code' => 'VALVE:M_MC', 'message' => '重复过滤', 'http_code' => 400, 'description' => 'We recommend that you reduce the number of messages sent per minute.'],
        ['code' => 'WorkOrderIdExpired', 'message' => 'Qualification details have changed. Please re-query the qualification list and resubmit.', 'http_code' => 400, 'description' => ''],
        ['code' => 'TrademarkPicsFileError', 'message' => 'The format of the trademark screenshot file is incorrect.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AppIcpRecordOssFileNotUploadError', 'message' => 'The APP-ICP record screenshot file is not uploaded.', 'http_code' => 400, 'description' => ''],
        ['code' => 'TrademarkApplicantNameNotMatchRegex', 'message' => 'The trademark applicant cannot be empty.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AppPrincipalUnitNameOverLimit', 'message' => 'The principal unit name of the APP exceeds the length limit.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AppIcpRecordDateNotMatchRegex', 'message' => 'The format of the APP-ICP record approval date is incorrect.', 'http_code' => 400, 'description' => ''],
        ['code' => 'TrademarkLetterDateNotMatchRegex', 'message' => 'The format of the trademark\'s validity period is incorrect.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AppIcpLicenseNumberOverLimit', 'message' => 'The ICP record/license number exceeds the length limit.', 'http_code' => 400, 'description' => ''],
        ['code' => 'TrademarkApplicantNameOverLimit', 'message' => 'The trademark applicant exceeds the length limit.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AppApprovalDateNotValid', 'message' => 'The validity period of the APP-ICP record is not within the valid range.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AppIcpRecordPicsFileError', 'message' => 'The format of the APP-ICP record screenshot file is incorrect.', 'http_code' => 400, 'description' => ''],
        ['code' => 'TrademarkRegistrationNumberNotMatchRegex', 'message' => 'The trademark registration number cannot be empty.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AppDomainNotMatchRegex', 'message' => 'The APP app store link cannot be empty and must start with http:// or https://.', 'http_code' => 400, 'description' => ''],
        ['code' => 'TrademarkDateNotValid', 'message' => 'The trademark\'s validity period is not within the valid range.', 'http_code' => 400, 'description' => ''],
        ['code' => 'TrademarkNameNotMatchRegex', 'message' => 'The trademark name cannot be empty.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AppPrincipalUnitNameNotMatchRegex', 'message' => 'The principal unit name of the APP cannot be empty.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AppIcpLicenseNumberNotMatchRegex', 'message' => 'The ICP record/license number cannot be empty.', 'http_code' => 400, 'description' => ''],
        ['code' => 'TrademarkOssFileNotUploadError', 'message' => 'The trademark screenshot file is not uploaded.', 'http_code' => 400, 'description' => ''],
        ['code' => 'TrademarkRegistrationNumberOverLimit', 'message' => 'The trademark registration number exceeds the length limit.', 'http_code' => 400, 'description' => ''],
        ['code' => 'TrademarkNameOverLimit', 'message' => 'The trademark name exceeds the length limit.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AppDomainOverLimit', 'message' => 'The APP app store link exceeds the length limit.', 'http_code' => 400, 'description' => ''],
        ['code' => 'AppIcpRecordNotExist', 'message' => 'The APP-ICP record does not exist.', 'http_code' => 400, 'description' => ''],
        ['code' => 'TrademarkNotExist', 'message' => 'The trademark does not exist.', 'http_code' => 400, 'description' => ''],
    ],
    'changeSet' => [
        [
            'apis' => [
                ['description' => 'OpenAPI offline', 'api' => 'SendMessageToGlobe'],
                ['description' => 'Request parameters changed', 'api' => 'SendMessageToGlobe'],
            ],
            'createdAt' => '2025-08-01T06:22:21.000Z',
            'description' => '',
        ],
        [
            'apis' => [
                ['description' => 'OpenAPI offline', 'api' => 'SendMessageToGlobe'],
            ],
            'createdAt' => '2025-08-01T03:34:45.000Z',
            'description' => '',
        ],
    ],
    'flowControl' => [
        'flowControlList' => [
            ['threshold' => '300', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryMessage'],
            ['threshold' => '1', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchSendMessageToGlobe'],
            ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SmsConversion'],
            ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ConversionData'],
            ['threshold' => '2000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendMessageToGlobe'],
            ['threshold' => '1500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendMessageWithTemplate'],
        ],
        'product' => ['code' => 'dysms', 'title' => 'Dysmsapi'],
    ],
    'ram' => [
        'productCode' => 'SMS',
        'productName' => 'Short Message Service',
        'ramCodes' => ['dysms', 'cloudcomm', 'dybase', 'sms'],
        'ramLevel' => 'SERVICE',
        'ramConditions' => [
            [
                'name' => 'dysms:TLSVersion',
                'schema' => [
                    'type' => 'String',
                    'description' => 'TLS version',
                    'enums' => ['TLSv1.0', 'TLSv1.1', 'TLSv1.2', 'TLSv1.3'],
                ],
            ],
        ],
        'ramActions' => [
            [
                'apiName' => 'QueryMessage',
                'description' => '',
                'operationType' => 'get',
                'ramAction' => [
                    'action' => 'dysms:QueryMessage',
                    'authLevel' => 'operate',
                    'actionConditions' => [],
                    'resources' => [
                        ['validationType' => 'always', 'product' => 'SMS', 'resourceType' => 'All Resource', 'arn' => '*'],
                    ],
                ],
            ],
            [
                'apiName' => 'SmsConversion',
                'description' => '',
                'operationType' => 'update',
                'ramAction' => [
                    'action' => 'dysms:SmsConversion',
                    'authLevel' => 'operate',
                    'actionConditions' => [],
                    'resources' => [
                        ['validationType' => 'always', 'product' => 'SMS', 'resourceType' => 'All Resource', 'arn' => '*'],
                    ],
                ],
            ],
            [
                'apiName' => 'SendMessageWithTemplate',
                'description' => '',
                'operationType' => 'create',
                'ramAction' => [
                    'action' => 'dysms:SendMessageWithTemplate',
                    'authLevel' => 'operate',
                    'actionConditions' => [],
                    'resources' => [
                        ['validationType' => 'always', 'product' => 'SMS', 'resourceType' => 'All Resource', 'arn' => '*'],
                    ],
                ],
            ],
            [
                'apiName' => 'ConversionData',
                'description' => '',
                'operationType' => 'update',
                'ramAction' => [
                    'action' => 'dysms:ConversionData',
                    'authLevel' => 'operate',
                    'actionConditions' => [],
                    'resources' => [
                        ['validationType' => 'always', 'product' => 'SMS', 'resourceType' => 'All Resource', 'arn' => '*'],
                    ],
                ],
            ],
            [
                'apiName' => 'SendMessageToGlobe',
                'description' => '',
                'operationType' => 'create',
                'ramAction' => [
                    'action' => 'dysms:SendMessageToGlobe',
                    'authLevel' => 'operate',
                    'actionConditions' => [],
                    'resources' => [
                        ['validationType' => 'always', 'product' => 'SMS', 'resourceType' => 'All Resource', 'arn' => '*'],
                    ],
                ],
            ],
            [
                'apiName' => 'BatchSendMessageToGlobe',
                'description' => '',
                'operationType' => 'create',
                'ramAction' => [
                    'action' => 'dysms:BatchSendMessageToGlobe',
                    'authLevel' => 'operate',
                    'actionConditions' => [],
                    'resources' => [
                        ['validationType' => 'always', 'product' => 'SMS', 'resourceType' => 'All Resource', 'arn' => '*'],
                    ],
                ],
            ],
        ],
        'resourceTypes' => [],
    ],
];