tccli 3.0.1139.1__py2.py3-none-any.whl → 3.0.1140.1__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -483,6 +483,13 @@
483
483
  "output": "PlayRecordResponse",
484
484
  "status": "online"
485
485
  },
486
+ "QueryForbidPlayChannelList": {
487
+ "document": "查询禁播通道列表",
488
+ "input": "QueryForbidPlayChannelListRequest",
489
+ "name": "查询禁播通道列表",
490
+ "output": "QueryForbidPlayChannelListResponse",
491
+ "status": "online"
492
+ },
486
493
  "RefreshDeviceChannel": {
487
494
  "document": "用于刷新国标设备的通道(接口调用后,触发向设备请求通道列表,新增的通道入库,设备上已删除的通道需自行删除、后台不自动删除)。",
488
495
  "input": "RefreshDeviceChannelRequest",
@@ -490,6 +497,13 @@
490
497
  "output": "RefreshDeviceChannelResponse",
491
498
  "status": "online"
492
499
  },
500
+ "SetForbidPlayChannels": {
501
+ "document": "禁止主、子账号对视频通道的实况预览",
502
+ "input": "SetForbidPlayChannelsRequest",
503
+ "name": "设置通道禁止播流",
504
+ "output": "SetForbidPlayChannelsResponse",
505
+ "status": "online"
506
+ },
493
507
  "UpdateAITask": {
494
508
  "document": "更新AI任务",
495
509
  "input": "UpdateAITaskRequest",
@@ -2506,6 +2520,52 @@
2506
2520
  ],
2507
2521
  "usage": "out"
2508
2522
  },
2523
+ "ChannelAttrInfo": {
2524
+ "document": "通道属性信息",
2525
+ "members": [
2526
+ {
2527
+ "disabled": false,
2528
+ "document": "设备通道所属的设备ID",
2529
+ "example": "389708b2-bcbb-********-a61f528b2a15",
2530
+ "member": "string",
2531
+ "name": "DeviceId",
2532
+ "output_required": true,
2533
+ "type": "string",
2534
+ "value_allowed_null": false
2535
+ },
2536
+ {
2537
+ "disabled": false,
2538
+ "document": "设备通道所属的设备名称\n注意:此字段可能返回 null,表示取不到有效值。",
2539
+ "example": "NVR05",
2540
+ "member": "string",
2541
+ "name": "DeviceName",
2542
+ "output_required": true,
2543
+ "type": "string",
2544
+ "value_allowed_null": true
2545
+ },
2546
+ {
2547
+ "disabled": false,
2548
+ "document": "设备通道ID",
2549
+ "example": "53ca64d3-9627-********-cea5122f6977",
2550
+ "member": "string",
2551
+ "name": "ChannelId",
2552
+ "output_required": true,
2553
+ "type": "string",
2554
+ "value_allowed_null": false
2555
+ },
2556
+ {
2557
+ "disabled": false,
2558
+ "document": "设备通道名称\n注意:此字段可能返回 null,表示取不到有效值。",
2559
+ "example": "PTZ03",
2560
+ "member": "string",
2561
+ "name": "ChannelName",
2562
+ "output_required": true,
2563
+ "type": "string",
2564
+ "value_allowed_null": true
2565
+ }
2566
+ ],
2567
+ "usage": "out"
2568
+ },
2509
2569
  "ChannelInfo": {
2510
2570
  "document": "通道及通道所属设备信息",
2511
2571
  "members": [
@@ -6405,6 +6465,52 @@
6405
6465
  ],
6406
6466
  "type": "object"
6407
6467
  },
6468
+ "ListForbidplayChannelsData": {
6469
+ "document": "用户禁止播流的通道列表返回数据",
6470
+ "members": [
6471
+ {
6472
+ "disabled": false,
6473
+ "document": "第几页",
6474
+ "example": "1",
6475
+ "member": "int64",
6476
+ "name": "PageNumber",
6477
+ "output_required": true,
6478
+ "type": "int",
6479
+ "value_allowed_null": false
6480
+ },
6481
+ {
6482
+ "disabled": false,
6483
+ "document": "当前页的设备数量",
6484
+ "example": "10",
6485
+ "member": "int64",
6486
+ "name": "PageSize",
6487
+ "output_required": true,
6488
+ "type": "int",
6489
+ "value_allowed_null": false
6490
+ },
6491
+ {
6492
+ "disabled": false,
6493
+ "document": "本次查询的设备通道总数",
6494
+ "example": "100",
6495
+ "member": "int64",
6496
+ "name": "TotalCount",
6497
+ "output_required": true,
6498
+ "type": "int",
6499
+ "value_allowed_null": false
6500
+ },
6501
+ {
6502
+ "disabled": false,
6503
+ "document": "设备通道信息列表\n注意:此字段可能返回 null,表示取不到有效值。",
6504
+ "example": "无",
6505
+ "member": "ChannelAttrInfo",
6506
+ "name": "List",
6507
+ "output_required": true,
6508
+ "type": "list",
6509
+ "value_allowed_null": true
6510
+ }
6511
+ ],
6512
+ "usage": "out"
6513
+ },
6408
6514
  "ListGatewayDevicesData": {
6409
6515
  "document": "查询网关设备列表返回数据",
6410
6516
  "members": [
@@ -7917,6 +8023,61 @@
7917
8023
  ],
7918
8024
  "type": "object"
7919
8025
  },
8026
+ "QueryForbidPlayChannelListRequest": {
8027
+ "document": "QueryForbidPlayChannelList请求参数结构体",
8028
+ "members": [
8029
+ {
8030
+ "disabled": false,
8031
+ "document": "子用户uin,也可以是主用户的uin",
8032
+ "example": "12*******36",
8033
+ "member": "string",
8034
+ "name": "UserId",
8035
+ "required": true,
8036
+ "type": "string"
8037
+ },
8038
+ {
8039
+ "disabled": false,
8040
+ "document": "每页最大数量,最大为200,超过按照200返回",
8041
+ "example": "10",
8042
+ "member": "int64",
8043
+ "name": "PageSize",
8044
+ "required": true,
8045
+ "type": "int"
8046
+ },
8047
+ {
8048
+ "disabled": false,
8049
+ "document": "第几页",
8050
+ "example": "1",
8051
+ "member": "int64",
8052
+ "name": "PageNumber",
8053
+ "required": true,
8054
+ "type": "int"
8055
+ }
8056
+ ],
8057
+ "type": "object"
8058
+ },
8059
+ "QueryForbidPlayChannelListResponse": {
8060
+ "document": "QueryForbidPlayChannelList返回参数结构体",
8061
+ "members": [
8062
+ {
8063
+ "disabled": false,
8064
+ "document": "返回结果\n注意:此字段可能返回 null,表示取不到有效值。",
8065
+ "example": "无",
8066
+ "member": "ListForbidplayChannelsData",
8067
+ "name": "Data",
8068
+ "output_required": true,
8069
+ "type": "object",
8070
+ "value_allowed_null": true
8071
+ },
8072
+ {
8073
+ "document": "唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。",
8074
+ "member": "string",
8075
+ "name": "RequestId",
8076
+ "type": "string"
8077
+ }
8078
+ ],
8079
+ "type": "object"
8080
+ },
7920
8081
  "RecordPlanBaseInfo": {
7921
8082
  "document": "实时上云计划基础信息",
7922
8083
  "members": [
@@ -8457,6 +8618,66 @@
8457
8618
  ],
8458
8619
  "type": "object"
8459
8620
  },
8621
+ "SetForbidPlayChannelsRequest": {
8622
+ "document": "SetForbidPlayChannels请求参数结构体",
8623
+ "members": [
8624
+ {
8625
+ "disabled": false,
8626
+ "document": "要禁播的通道参数,一次最多可以设置200个通道",
8627
+ "example": "无",
8628
+ "member": "SetForbidplayChannelParam",
8629
+ "name": "Channels",
8630
+ "required": true,
8631
+ "type": "list"
8632
+ },
8633
+ {
8634
+ "disabled": false,
8635
+ "document": "用户uin,可以是子用户的也可以是主用户的uin",
8636
+ "example": "12*******36",
8637
+ "member": "string",
8638
+ "name": "UserId",
8639
+ "required": true,
8640
+ "type": "string"
8641
+ }
8642
+ ],
8643
+ "type": "object"
8644
+ },
8645
+ "SetForbidPlayChannelsResponse": {
8646
+ "document": "SetForbidPlayChannels返回参数结构体",
8647
+ "members": [
8648
+ {
8649
+ "document": "唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。",
8650
+ "member": "string",
8651
+ "name": "RequestId",
8652
+ "type": "string"
8653
+ }
8654
+ ],
8655
+ "type": "object"
8656
+ },
8657
+ "SetForbidplayChannelParam": {
8658
+ "document": "设置通道禁止播流,有通道Id和使能enable字段",
8659
+ "members": [
8660
+ {
8661
+ "disabled": false,
8662
+ "document": "通道Id",
8663
+ "example": "9ee325e9984**********a805c19b4e1",
8664
+ "member": "string",
8665
+ "name": "ChannelId",
8666
+ "required": true,
8667
+ "type": "string"
8668
+ },
8669
+ {
8670
+ "disabled": false,
8671
+ "document": "是否禁止通道播流",
8672
+ "example": "true",
8673
+ "member": "bool",
8674
+ "name": "Enable",
8675
+ "required": true,
8676
+ "type": "bool"
8677
+ }
8678
+ ],
8679
+ "usage": "in"
8680
+ },
8460
8681
  "SmokingAIResultInfo": {
8461
8682
  "document": "抽烟识别结果详情",
8462
8683
  "members": [
@@ -732,6 +732,14 @@
732
732
  "title": "成功"
733
733
  }
734
734
  ],
735
+ "QueryForbidPlayChannelList": [
736
+ {
737
+ "document": "",
738
+ "input": "POST / HTTP/1.1\nHost: iss.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: QueryForbidPlayChannelList\n<公共请求参数>\n\n{\n \"UserId\": \"10********82\",\n \"PageSize\": 5,\n \"PageNumber\": 1\n}",
739
+ "output": "{\n \"Response\": {\n \"Data\": {\n \"List\": [\n {\n \"ChannelId\": \"32525dd7-c3fc-****-****-d5beb4acd1e1\",\n \"ChannelName\": \"11\",\n \"DeviceId\": \"389708b2-bcbb-****-****-a61f528b2a15\",\n \"DeviceName\": \"SDK-NVR05\"\n }\n ],\n \"PageNumber\": 1,\n \"PageSize\": 1,\n \"TotalCount\": 1\n },\n \"RequestId\": \"fba7981b-d6a4-4177-b11d-e53a6110e4cd\"\n }\n}",
740
+ "title": "查询禁播列表"
741
+ }
742
+ ],
735
743
  "RefreshDeviceChannel": [
736
744
  {
737
745
  "document": " ",
@@ -746,6 +754,14 @@
746
754
  "title": "设备未注册"
747
755
  }
748
756
  ],
757
+ "SetForbidPlayChannels": [
758
+ {
759
+ "document": "",
760
+ "input": "POST / HTTP/1.1\nHost: iss.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: SetForbidPlayChannels\n<公共请求参数>\n\n{\n \"UserId\": \"10********02\",\n \"Channels\": [\n {\n \"ChannelId\": \"0001a415-****-****-****-b13cfb96c778\",\n \"Enable\": true\n },\n {\n \"ChannelId\": \"00037e5f-****-****-****-f30b13a86b02\",\n \"Enable\": false\n }\n ]\n}",
761
+ "output": "{\n \"Response\": {\n \"RequestId\": \"fba7981b-d6a4-4177-b11d-e53a6110e4cd\"\n }\n}",
762
+ "title": "通道禁播使能"
763
+ }
764
+ ],
749
765
  "UpdateAITask": [
750
766
  {
751
767
  "document": "AI任务不存在",
@@ -433,7 +433,7 @@ def doGetEmailTemplate(args, parsed_globals):
433
433
  FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
434
434
 
435
435
 
436
- def doGetStatisticsReport(args, parsed_globals):
436
+ def doUpdateCustomBlackList(args, parsed_globals):
437
437
  g_param = parse_global_arg(parsed_globals)
438
438
 
439
439
  if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
@@ -462,11 +462,63 @@ def doGetStatisticsReport(args, parsed_globals):
462
462
  client = mod.SesClient(cred, g_param[OptionsDefine.Region], profile)
463
463
  client._sdkVersion += ("_CLI_" + __version__)
464
464
  models = MODELS_MAP[g_param[OptionsDefine.Version]]
465
- model = models.GetStatisticsReportRequest()
465
+ model = models.UpdateCustomBlackListRequest()
466
466
  model.from_json_string(json.dumps(args))
467
467
  start_time = time.time()
468
468
  while True:
469
- rsp = client.GetStatisticsReport(model)
469
+ rsp = client.UpdateCustomBlackList(model)
470
+ result = rsp.to_json_string()
471
+ try:
472
+ json_obj = json.loads(result)
473
+ except TypeError as e:
474
+ json_obj = json.loads(result.decode('utf-8')) # python3.3
475
+ if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
476
+ break
477
+ cur_time = time.time()
478
+ if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
479
+ raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
480
+ (g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
481
+ search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
482
+ else:
483
+ print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
484
+ time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
485
+ FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
486
+
487
+
488
+ def doListBlackEmailAddress(args, parsed_globals):
489
+ g_param = parse_global_arg(parsed_globals)
490
+
491
+ if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
492
+ cred = credential.CVMRoleCredential()
493
+ elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
494
+ cred = credential.STSAssumeRoleCredential(
495
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
496
+ g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
497
+ )
498
+ elif os.getenv(OptionsDefine.ENV_TKE_REGION) and os.getenv(OptionsDefine.ENV_TKE_PROVIDER_ID) and os.getenv(OptionsDefine.ENV_TKE_WEB_IDENTITY_TOKEN_FILE) and os.getenv(OptionsDefine.ENV_TKE_ROLE_ARN):
499
+ cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
500
+ else:
501
+ cred = credential.Credential(
502
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
503
+ )
504
+ http_profile = HttpProfile(
505
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
506
+ reqMethod="POST",
507
+ endpoint=g_param[OptionsDefine.Endpoint],
508
+ proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
509
+ )
510
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
511
+ if g_param[OptionsDefine.Language]:
512
+ profile.language = g_param[OptionsDefine.Language]
513
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
514
+ client = mod.SesClient(cred, g_param[OptionsDefine.Region], profile)
515
+ client._sdkVersion += ("_CLI_" + __version__)
516
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
517
+ model = models.ListBlackEmailAddressRequest()
518
+ model.from_json_string(json.dumps(args))
519
+ start_time = time.time()
520
+ while True:
521
+ rsp = client.ListBlackEmailAddress(model)
470
522
  result = rsp.to_json_string()
471
523
  try:
472
524
  json_obj = json.loads(result)
@@ -901,6 +953,58 @@ def doUpdateEmailSmtpPassWord(args, parsed_globals):
901
953
  FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
902
954
 
903
955
 
956
+ def doCreateCustomBlacklist(args, parsed_globals):
957
+ g_param = parse_global_arg(parsed_globals)
958
+
959
+ if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
960
+ cred = credential.CVMRoleCredential()
961
+ elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
962
+ cred = credential.STSAssumeRoleCredential(
963
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
964
+ g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
965
+ )
966
+ elif os.getenv(OptionsDefine.ENV_TKE_REGION) and os.getenv(OptionsDefine.ENV_TKE_PROVIDER_ID) and os.getenv(OptionsDefine.ENV_TKE_WEB_IDENTITY_TOKEN_FILE) and os.getenv(OptionsDefine.ENV_TKE_ROLE_ARN):
967
+ cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
968
+ else:
969
+ cred = credential.Credential(
970
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
971
+ )
972
+ http_profile = HttpProfile(
973
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
974
+ reqMethod="POST",
975
+ endpoint=g_param[OptionsDefine.Endpoint],
976
+ proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
977
+ )
978
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
979
+ if g_param[OptionsDefine.Language]:
980
+ profile.language = g_param[OptionsDefine.Language]
981
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
982
+ client = mod.SesClient(cred, g_param[OptionsDefine.Region], profile)
983
+ client._sdkVersion += ("_CLI_" + __version__)
984
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
985
+ model = models.CreateCustomBlacklistRequest()
986
+ model.from_json_string(json.dumps(args))
987
+ start_time = time.time()
988
+ while True:
989
+ rsp = client.CreateCustomBlacklist(model)
990
+ result = rsp.to_json_string()
991
+ try:
992
+ json_obj = json.loads(result)
993
+ except TypeError as e:
994
+ json_obj = json.loads(result.decode('utf-8')) # python3.3
995
+ if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
996
+ break
997
+ cur_time = time.time()
998
+ if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
999
+ raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
1000
+ (g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
1001
+ search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
1002
+ else:
1003
+ print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
1004
+ time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
1005
+ FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
1006
+
1007
+
904
1008
  def doDeleteEmailTemplate(args, parsed_globals):
905
1009
  g_param = parse_global_arg(parsed_globals)
906
1010
 
@@ -1005,7 +1109,7 @@ def doListEmailTemplates(args, parsed_globals):
1005
1109
  FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
1006
1110
 
1007
1111
 
1008
- def doListSendTasks(args, parsed_globals):
1112
+ def doDeleteBlackList(args, parsed_globals):
1009
1113
  g_param = parse_global_arg(parsed_globals)
1010
1114
 
1011
1115
  if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
@@ -1034,11 +1138,11 @@ def doListSendTasks(args, parsed_globals):
1034
1138
  client = mod.SesClient(cred, g_param[OptionsDefine.Region], profile)
1035
1139
  client._sdkVersion += ("_CLI_" + __version__)
1036
1140
  models = MODELS_MAP[g_param[OptionsDefine.Version]]
1037
- model = models.ListSendTasksRequest()
1141
+ model = models.DeleteBlackListRequest()
1038
1142
  model.from_json_string(json.dumps(args))
1039
1143
  start_time = time.time()
1040
1144
  while True:
1041
- rsp = client.ListSendTasks(model)
1145
+ rsp = client.DeleteBlackList(model)
1042
1146
  result = rsp.to_json_string()
1043
1147
  try:
1044
1148
  json_obj = json.loads(result)
@@ -1109,7 +1213,7 @@ def doCreateEmailTemplate(args, parsed_globals):
1109
1213
  FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
1110
1214
 
1111
1215
 
1112
- def doDeleteBlackList(args, parsed_globals):
1216
+ def doDeleteCustomBlackList(args, parsed_globals):
1113
1217
  g_param = parse_global_arg(parsed_globals)
1114
1218
 
1115
1219
  if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
@@ -1138,11 +1242,63 @@ def doDeleteBlackList(args, parsed_globals):
1138
1242
  client = mod.SesClient(cred, g_param[OptionsDefine.Region], profile)
1139
1243
  client._sdkVersion += ("_CLI_" + __version__)
1140
1244
  models = MODELS_MAP[g_param[OptionsDefine.Version]]
1141
- model = models.DeleteBlackListRequest()
1245
+ model = models.DeleteCustomBlackListRequest()
1142
1246
  model.from_json_string(json.dumps(args))
1143
1247
  start_time = time.time()
1144
1248
  while True:
1145
- rsp = client.DeleteBlackList(model)
1249
+ rsp = client.DeleteCustomBlackList(model)
1250
+ result = rsp.to_json_string()
1251
+ try:
1252
+ json_obj = json.loads(result)
1253
+ except TypeError as e:
1254
+ json_obj = json.loads(result.decode('utf-8')) # python3.3
1255
+ if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
1256
+ break
1257
+ cur_time = time.time()
1258
+ if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
1259
+ raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
1260
+ (g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
1261
+ search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
1262
+ else:
1263
+ print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
1264
+ time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
1265
+ FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
1266
+
1267
+
1268
+ def doListSendTasks(args, parsed_globals):
1269
+ g_param = parse_global_arg(parsed_globals)
1270
+
1271
+ if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
1272
+ cred = credential.CVMRoleCredential()
1273
+ elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
1274
+ cred = credential.STSAssumeRoleCredential(
1275
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
1276
+ g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
1277
+ )
1278
+ elif os.getenv(OptionsDefine.ENV_TKE_REGION) and os.getenv(OptionsDefine.ENV_TKE_PROVIDER_ID) and os.getenv(OptionsDefine.ENV_TKE_WEB_IDENTITY_TOKEN_FILE) and os.getenv(OptionsDefine.ENV_TKE_ROLE_ARN):
1279
+ cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
1280
+ else:
1281
+ cred = credential.Credential(
1282
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
1283
+ )
1284
+ http_profile = HttpProfile(
1285
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
1286
+ reqMethod="POST",
1287
+ endpoint=g_param[OptionsDefine.Endpoint],
1288
+ proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
1289
+ )
1290
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
1291
+ if g_param[OptionsDefine.Language]:
1292
+ profile.language = g_param[OptionsDefine.Language]
1293
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
1294
+ client = mod.SesClient(cred, g_param[OptionsDefine.Region], profile)
1295
+ client._sdkVersion += ("_CLI_" + __version__)
1296
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
1297
+ model = models.ListSendTasksRequest()
1298
+ model.from_json_string(json.dumps(args))
1299
+ start_time = time.time()
1300
+ while True:
1301
+ rsp = client.ListSendTasks(model)
1146
1302
  result = rsp.to_json_string()
1147
1303
  try:
1148
1304
  json_obj = json.loads(result)
@@ -1213,7 +1369,7 @@ def doSendEmail(args, parsed_globals):
1213
1369
  FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
1214
1370
 
1215
1371
 
1216
- def doListBlackEmailAddress(args, parsed_globals):
1372
+ def doListCustomBlacklist(args, parsed_globals):
1217
1373
  g_param = parse_global_arg(parsed_globals)
1218
1374
 
1219
1375
  if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
@@ -1242,11 +1398,63 @@ def doListBlackEmailAddress(args, parsed_globals):
1242
1398
  client = mod.SesClient(cred, g_param[OptionsDefine.Region], profile)
1243
1399
  client._sdkVersion += ("_CLI_" + __version__)
1244
1400
  models = MODELS_MAP[g_param[OptionsDefine.Version]]
1245
- model = models.ListBlackEmailAddressRequest()
1401
+ model = models.ListCustomBlacklistRequest()
1246
1402
  model.from_json_string(json.dumps(args))
1247
1403
  start_time = time.time()
1248
1404
  while True:
1249
- rsp = client.ListBlackEmailAddress(model)
1405
+ rsp = client.ListCustomBlacklist(model)
1406
+ result = rsp.to_json_string()
1407
+ try:
1408
+ json_obj = json.loads(result)
1409
+ except TypeError as e:
1410
+ json_obj = json.loads(result.decode('utf-8')) # python3.3
1411
+ if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
1412
+ break
1413
+ cur_time = time.time()
1414
+ if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
1415
+ raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
1416
+ (g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
1417
+ search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
1418
+ else:
1419
+ print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
1420
+ time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
1421
+ FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
1422
+
1423
+
1424
+ def doGetStatisticsReport(args, parsed_globals):
1425
+ g_param = parse_global_arg(parsed_globals)
1426
+
1427
+ if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
1428
+ cred = credential.CVMRoleCredential()
1429
+ elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
1430
+ cred = credential.STSAssumeRoleCredential(
1431
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
1432
+ g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
1433
+ )
1434
+ elif os.getenv(OptionsDefine.ENV_TKE_REGION) and os.getenv(OptionsDefine.ENV_TKE_PROVIDER_ID) and os.getenv(OptionsDefine.ENV_TKE_WEB_IDENTITY_TOKEN_FILE) and os.getenv(OptionsDefine.ENV_TKE_ROLE_ARN):
1435
+ cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
1436
+ else:
1437
+ cred = credential.Credential(
1438
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
1439
+ )
1440
+ http_profile = HttpProfile(
1441
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
1442
+ reqMethod="POST",
1443
+ endpoint=g_param[OptionsDefine.Endpoint],
1444
+ proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
1445
+ )
1446
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
1447
+ if g_param[OptionsDefine.Language]:
1448
+ profile.language = g_param[OptionsDefine.Language]
1449
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
1450
+ client = mod.SesClient(cred, g_param[OptionsDefine.Region], profile)
1451
+ client._sdkVersion += ("_CLI_" + __version__)
1452
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
1453
+ model = models.GetStatisticsReportRequest()
1454
+ model.from_json_string(json.dumps(args))
1455
+ start_time = time.time()
1456
+ while True:
1457
+ rsp = client.GetStatisticsReport(model)
1250
1458
  result = rsp.to_json_string()
1251
1459
  try:
1252
1460
  json_obj = json.loads(result)
@@ -1440,7 +1648,8 @@ ACTION_MAP = {
1440
1648
  "CreateReceiver": doCreateReceiver,
1441
1649
  "GetEmailIdentity": doGetEmailIdentity,
1442
1650
  "GetEmailTemplate": doGetEmailTemplate,
1443
- "GetStatisticsReport": doGetStatisticsReport,
1651
+ "UpdateCustomBlackList": doUpdateCustomBlackList,
1652
+ "ListBlackEmailAddress": doListBlackEmailAddress,
1444
1653
  "UpdateEmailTemplate": doUpdateEmailTemplate,
1445
1654
  "UpdateEmailIdentity": doUpdateEmailIdentity,
1446
1655
  "DeleteEmailIdentity": doDeleteEmailIdentity,
@@ -1449,13 +1658,16 @@ ACTION_MAP = {
1449
1658
  "CreateEmailIdentity": doCreateEmailIdentity,
1450
1659
  "BatchSendEmail": doBatchSendEmail,
1451
1660
  "UpdateEmailSmtpPassWord": doUpdateEmailSmtpPassWord,
1661
+ "CreateCustomBlacklist": doCreateCustomBlacklist,
1452
1662
  "DeleteEmailTemplate": doDeleteEmailTemplate,
1453
1663
  "ListEmailTemplates": doListEmailTemplates,
1454
- "ListSendTasks": doListSendTasks,
1455
- "CreateEmailTemplate": doCreateEmailTemplate,
1456
1664
  "DeleteBlackList": doDeleteBlackList,
1665
+ "CreateEmailTemplate": doCreateEmailTemplate,
1666
+ "DeleteCustomBlackList": doDeleteCustomBlackList,
1667
+ "ListSendTasks": doListSendTasks,
1457
1668
  "SendEmail": doSendEmail,
1458
- "ListBlackEmailAddress": doListBlackEmailAddress,
1669
+ "ListCustomBlacklist": doListCustomBlacklist,
1670
+ "GetStatisticsReport": doGetStatisticsReport,
1459
1671
  "CreateReceiverDetail": doCreateReceiverDetail,
1460
1672
  "ListReceivers": doListReceivers,
1461
1673
  "DeleteEmailAddress": doDeleteEmailAddress,