tccli 3.0.1228.1__py2.py3-none-any.whl → 3.0.1229.1__py2.py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. tccli/__init__.py +1 -1
  2. tccli/services/aiart/v20221229/api.json +12 -3
  3. tccli/services/cam/v20190116/api.json +25 -25
  4. tccli/services/cam/v20190116/examples.json +8 -8
  5. tccli/services/cdb/v20170320/api.json +8 -8
  6. tccli/services/ckafka/v20190819/api.json +1 -1
  7. tccli/services/ckafka/v20190819/examples.json +14 -14
  8. tccli/services/clb/v20180317/api.json +1 -1
  9. tccli/services/cloudaudit/v20190319/api.json +15 -15
  10. tccli/services/cloudaudit/v20190319/examples.json +3 -3
  11. tccli/services/config/v20220802/api.json +70 -68
  12. tccli/services/config/v20220802/examples.json +6 -6
  13. tccli/services/cynosdb/cynosdb_client.py +118 -12
  14. tccli/services/cynosdb/v20190107/api.json +126 -0
  15. tccli/services/cynosdb/v20190107/examples.json +16 -0
  16. tccli/services/essbasic/v20210526/api.json +10 -0
  17. tccli/services/facefusion/v20181201/api.json +12 -6
  18. tccli/services/hai/v20230812/api.json +6 -6
  19. tccli/services/hai/v20230812/examples.json +2 -2
  20. tccli/services/mqtt/mqtt_client.py +118 -12
  21. tccli/services/mqtt/v20240516/api.json +312 -33
  22. tccli/services/mqtt/v20240516/examples.json +23 -13
  23. tccli/services/ocr/v20181119/api.json +11 -2
  24. tccli/services/ocr/v20181119/examples.json +6 -6
  25. tccli/services/pts/v20210728/api.json +22 -12
  26. tccli/services/redis/v20180412/api.json +14 -14
  27. tccli/services/scf/v20180416/api.json +12 -0
  28. tccli/services/ssl/v20191205/api.json +246 -173
  29. tccli/services/ssl/v20191205/examples.json +69 -69
  30. tccli/services/sts/v20180813/api.json +17 -11
  31. tccli/services/sts/v20180813/examples.json +6 -6
  32. tccli/services/tcr/v20190924/api.json +17 -17
  33. tccli/services/tdmq/tdmq_client.py +4 -57
  34. tccli/services/tdmq/v20200217/api.json +119 -200
  35. tccli/services/tdmq/v20200217/examples.json +29 -49
  36. tccli/services/trtc/v20190722/api.json +1 -1
  37. tccli/services/vclm/v20240523/api.json +25 -15
  38. tccli/services/vclm/v20240523/examples.json +2 -2
  39. tccli/services/vod/v20180717/api.json +1 -1
  40. tccli/services/vpc/v20170312/api.json +166 -137
  41. tccli/services/vpc/v20170312/examples.json +3 -3
  42. {tccli-3.0.1228.1.dist-info → tccli-3.0.1229.1.dist-info}/METADATA +2 -2
  43. {tccli-3.0.1228.1.dist-info → tccli-3.0.1229.1.dist-info}/RECORD +46 -46
  44. {tccli-3.0.1228.1.dist-info → tccli-3.0.1229.1.dist-info}/WHEEL +0 -0
  45. {tccli-3.0.1228.1.dist-info → tccli-3.0.1229.1.dist-info}/entry_points.txt +0 -0
  46. {tccli-3.0.1228.1.dist-info → tccli-3.0.1229.1.dist-info}/license_files/LICENSE +0 -0
@@ -18,24 +18,24 @@
18
18
  ],
19
19
  "ListConfigRules": [
20
20
  {
21
- "document": "",
22
- "input": "POST / HTTP/1.1\nHost: config.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: ListConfigRules\n<公共请求参数>\n\n{\n \"Offset\": 0,\n \"Limit\": 10,\n \"OrderType\": \"\",\n \"RiskLevel\": [],\n \"State\": \"ACTIVE\",\n \"ComplianceResult\": [],\n \"RuleName\": \"\"\n}",
23
- "output": "{\n \"Response\": {\n \"RequestId\": \"149e116a-90ef-45f3-9d5d-3d77fd1c9eb3\",\n \"Items\": [\n {\n \"Annotation\": null,\n \"CompliancePackId\": \"cp-xzfz0vu007feuhwi8auv\",\n \"CompliancePackName\": \"合规1\",\n \"ComplianceResult\": \"NON_COMPLIANT\",\n \"ConfigRuleId\": \"cr-13vkg9c31dixgabkepxe\",\n \"ConfigRuleInvokedTime\": null,\n \"CreateTime\": \"2022-11-16 14:25:01\",\n \"Description\": \"帐号访问管理中用户至少关联一个用户组,则符合规则。\",\n \"Identifier\": \"cam-user-group-bound\",\n \"IdentifierType\": \"SYSTEM\",\n \"InputParameter\": [],\n \"Labels\": [],\n \"ManageInputParameter\": [],\n \"ResourceType\": [\n \"QCS::CAM::User\"\n ],\n \"RiskLevel\": 3,\n \"RuleName\": \"CAM访问管理子用户必须关联用户组\",\n \"ServiceFunction\": null,\n \"SourceCondition\": [\n {\n \"DesiredValue\": \"1\",\n \"EmptyAs\": \"COMPLIANT\",\n \"Operator\": \"GreaterOrEquals\",\n \"Required\": false,\n \"SelectPath\": \"$User.GroupBindNum\"\n }\n ],\n \"Status\": \"ACTIVE\",\n \"TriggerType\": [\n {\n \"MaximumExecutionFrequency\": \"TwentyFour_Hours\",\n \"MessageType\": \"ScheduledNotification\"\n }\n ]\n },\n {\n \"Annotation\": null,\n \"CompliancePackId\": \"\",\n \"CompliancePackName\": null,\n \"ComplianceResult\": \"NON_COMPLIANT\",\n \"ConfigRuleId\": \"cr-bdunf5kx3aywn0ac5bkk\",\n \"ConfigRuleInvokedTime\": null,\n \"CreateTime\": \"2022-11-16 14:22:59\",\n \"Description\": \"帐号访问管理中用户至少关联一个用户组,则符合规则。\",\n \"Identifier\": \"cam-user-group-bound\",\n \"IdentifierType\": \"SYSTEM\",\n \"InputParameter\": [],\n \"Labels\": [],\n \"ManageInputParameter\": [],\n \"ResourceType\": [\n \"QCS::CAM::User\"\n ],\n \"RiskLevel\": 3,\n \"RuleName\": \"CAM访问管理子用户必须关联用户组\",\n \"ServiceFunction\": null,\n \"SourceCondition\": [\n {\n \"DesiredValue\": \"1\",\n \"EmptyAs\": \"COMPLIANT\",\n \"Operator\": \"GreaterOrEquals\",\n \"Required\": false,\n \"SelectPath\": \"$User.GroupBindNum\"\n }\n ],\n \"Status\": \"ACTIVE\",\n \"TriggerType\": [\n {\n \"MaximumExecutionFrequency\": \"TwentyFour_Hours\",\n \"MessageType\": \"ScheduledNotification\"\n }\n ]\n },\n {\n \"Annotation\": null,\n \"CompliancePackId\": \"\",\n \"CompliancePackName\": null,\n \"ComplianceResult\": \"NON_COMPLIANT\",\n \"ConfigRuleId\": \"cr-2d3brhnvyazqb9j1el6o\",\n \"ConfigRuleInvokedTime\": null,\n \"CreateTime\": \"2022-11-16 11:36:45\",\n \"Description\": \"帐号访问管理中用户至少关联一个用户组,则符合规则。\",\n \"Identifier\": \"cam-user-group-bound\",\n \"IdentifierType\": \"SYSTEM\",\n \"InputParameter\": [],\n \"Labels\": [],\n \"ManageInputParameter\": [],\n \"ResourceType\": [\n \"QCS::CAM::User\"\n ],\n \"RiskLevel\": 3,\n \"RuleName\": \"CAM访问管理子用户必须关联用户组\",\n \"ServiceFunction\": null,\n \"SourceCondition\": [\n {\n \"DesiredValue\": \"1\",\n \"EmptyAs\": \"COMPLIANT\",\n \"Operator\": \"GreaterOrEquals\",\n \"Required\": false,\n \"SelectPath\": \"$User.GroupBindNum\"\n }\n ],\n \"Status\": \"ACTIVE\",\n \"TriggerType\": [\n {\n \"MaximumExecutionFrequency\": \"TwentyFour_Hours\",\n \"MessageType\": \"ScheduledNotification\"\n }\n ]\n }\n ],\n \"Total\": 3\n }\n}",
21
+ "document": "获取规则列表",
22
+ "input": "POST / HTTP/1.1\nHost: config.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: ListConfigRules\n<公共请求参数>\n\n{\n \"Offset\": 0,\n \"Limit\": 10,\n \"OrderType\": \"desc\",\n \"RiskLevel\": [\n 1\n ],\n \"State\": \"ACTIVE\",\n \"ComplianceResult\": [\n \"COMPLIANT\"\n ],\n \"RuleName\": \"CAM\"\n}",
23
+ "output": "{\n \"Response\": {\n \"RequestId\": \"107f8d51-7095-4a6f-b374-a8aa7743584b\",\n \"Items\": [\n {\n \"AccountGroupId\": \"ca-324234\",\n \"AccountGroupName\": \"账号组\",\n \"Annotation\": null,\n \"CompliancePackId\": \"\",\n \"CompliancePackName\": null,\n \"ComplianceResult\": \"NON_COMPLIANT\",\n \"ConfigRuleId\": \"cr-HQxxxxxxxhR0BxxxxGodh\",\n \"ConfigRuleInvokedTime\": null,\n \"CreateTime\": \"2024-11-15 14:21:47\",\n \"Description\": \"CAM用户下不存在已禁用的 AccessKey,则符合规则。\",\n \"ExcludeResourceIdsScope\": [],\n \"Identifier\": \"cam-user-invalid-ak-check\",\n \"IdentifierType\": \"SYSTEM\",\n \"InputParameter\": [],\n \"Labels\": [\n \"用户\",\n \"密钥\"\n ],\n \"ManageInputParameter\": [],\n \"ManageTriggerType\": [\n \"ConfigurationItemChangeNotification\"\n ],\n \"RegionsScope\": [],\n \"ResourceType\": [\n \"QCS::CAM::User\"\n ],\n \"RiskLevel\": 3,\n \"RuleName\": \"CAM用户下不存在已禁用的访问密钥AccessKey\",\n \"RuleOwnerId\": 84935363164,\n \"ServiceFunction\": null,\n \"SourceCondition\": [],\n \"Status\": \"ACTIVE\",\n \"TagsScope\": [],\n \"TriggerType\": [\n {\n \"MaximumExecutionFrequency\": null,\n \"MessageType\": \"ConfigurationItemChangeNotification\"\n }\n ]\n }\n ],\n \"Total\": 1\n }\n}",
24
24
  "title": "获取规则列表"
25
25
  }
26
26
  ],
27
27
  "ListDiscoveredResources": [
28
28
  {
29
29
  "document": "",
30
- "input": "POST / HTTP/1.1\nHost: config.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: ListDiscoveredResources\n<公共请求参数>\n\n{\n \"OrderType\": \"xx\",\n \"NextToken\": \"xx\",\n \"MaxResults\": 1,\n \"Filters\": [\n {\n \"Values\": [\n \"xx\"\n ],\n \"Name\": \"xx\"\n }\n ],\n \"Tags\": [\n {\n \"TagKey\": \"xx\",\n \"TagValue\": \"xx\"\n }\n ]\n}",
31
- "output": "{\n \"Response\": {\n \"Items\": [\n {\n \"ResourceStatus\": \"xx\",\n \"Tags\": [\n {\n \"TagKey\": \"xx\",\n \"TagValue\": \"xx\"\n }\n ],\n \"ResourceType\": \"xx\",\n \"ResourceId\": \"xx\",\n \"ResourceCreateTime\": 1,\n \"ResourceRegion\": \"xx\",\n \"ResourceName\": \"xx\",\n \"ResourceZone\": \"xx\",\n \"ResourceDelete\": 1,\n \"ComplianceResult\": \"xx\"\n }\n ],\n \"NextToken\": \"xx\",\n \"RequestId\": \"xx\"\n }\n}",
30
+ "input": "POST / HTTP/1.1\nHost: config.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: ListDiscoveredResources\n<公共请求参数>\n\n{\n \"OrderType\": \"desc\",\n \"NextToken\": \"C3IptlTj6hTlW0WKVO3NI\",\n \"MaxResults\": 10,\n \"Filters\": [\n {\n \"Values\": [\n \"ins-234234\"\n ],\n \"Name\": \"resourceName\"\n }\n ],\n \"Tags\": [\n {\n \"TagKey\": \"开发部\",\n \"TagValue\": \"运营部\"\n }\n ]\n}",
31
+ "output": "{\n \"Response\": {\n \"Items\": [\n {\n \"ResourceStatus\": \"Running\",\n \"Tags\": [\n {\n \"TagKey\": \"开发部\",\n \"TagValue\": \"运营部\"\n }\n ],\n \"ResourceType\": \"cvm\",\n \"ResourceId\": \"ins-234er\",\n \"ResourceCreateTime\": \"2022-10-10 12:56:37\",\n \"ResourceRegion\": \"ap-guangzhou\",\n \"ResourceName\": \"云服务器\",\n \"ResourceZone\": \"ap-guangzhou-1\",\n \"ResourceDelete\": 1,\n \"ComplianceResult\": \"COMPLIANT\"\n }\n ],\n \"NextToken\": \"C3IptlTj6hTlW0WKVO3NI\",\n \"RequestId\": \"4006b9ea-9b33-4b80-8496-6917c900b122\"\n }\n}",
32
32
  "title": "获取资源列表"
33
33
  }
34
34
  ],
35
35
  "PutEvaluations": [
36
36
  {
37
37
  "document": "上报自定义规则评估结果",
38
- "input": "POST / HTTP/1.1\nHost: config.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: PutEvaluations\n<公共请求参数>\n\n \n\n \n\n \n\n \n\n{\n \"ResultToken\": \"Wm9yZlY3WmlKa3cxaW1oQlu-H3WA6JZnH46cUAn2DWGJ9dp3GwJyhMyXsJyeXRcqa8sCimZKH6hy-7RGW_DEtva2Bjd36ryyDg0tbNOfYpf3r6lJB_gHRUCPRrr8HQbEvCoeoGw-KH7LqNUsoa4GzyrvKx2Ak1vycWzfAGaiTISWoTQ2mYr_BYSsVcO077lUlY4hieGJyolSxxUf1V9fDoIXFQikxW6AmU4cTUUpEJ-OF4Mvbq_7quPYZQOjDuo9cAxzUX-D8w==\",\n \"Evaluations\": [\n {\n \"ComplianceResourceId\": \"disk-26itbqha\",\n \"ComplianceResourceType\": \"QCS::CBS::Disk\",\n \"ComplianceRegion\": \"ap-guangzhou\",\n \"ComplianceType\": \"NON_COMPLIANT\",\n \"Annotation\": {\n \"Configuration\": \"1\",\n \"DesiredValue\": \"2\",\n \"Operator\": \"equal\",\n \"Property\": \"age\"\n }\n }\n ]\n}",
38
+ "input": "POST / HTTP/1.1\nHost: config.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: PutEvaluations\n<公共请求参数>\n\n{\n \"ResultToken\": \"Wm9yZlY3WmlKa3cxaW1oQlu-H3WA6JZnH46cUAn2DWG****\",\n \"Evaluations\": [\n {\n \"ComplianceResourceId\": \"disk-26itbqha\",\n \"ComplianceResourceType\": \"QCS::CBS::Disk\",\n \"ComplianceRegion\": \"ap-guangzhou\",\n \"ComplianceType\": \"NON_COMPLIANT\",\n \"Annotation\": {\n \"Configuration\": \"1\",\n \"DesiredValue\": \"2\",\n \"Operator\": \"equal\",\n \"Property\": \"age\"\n }\n }\n ]\n}",
39
39
  "output": "{\n \"Response\": {\n \"RequestId\": \"d947eba9-f908-4d2e-9b3d-63bde43abd1a\"\n }\n}",
40
40
  "title": "上报自定义规则评估结果"
41
41
  }
@@ -69,7 +69,7 @@ def doResumeServerless(args, parsed_globals):
69
69
  FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
70
70
 
71
71
 
72
- def doDescribeInstanceSpecs(args, parsed_globals):
72
+ def doDescribeBackupConfig(args, parsed_globals):
73
73
  g_param = parse_global_arg(parsed_globals)
74
74
 
75
75
  if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
@@ -98,11 +98,11 @@ def doDescribeInstanceSpecs(args, parsed_globals):
98
98
  client = mod.CynosdbClient(cred, g_param[OptionsDefine.Region], profile)
99
99
  client._sdkVersion += ("_CLI_" + __version__)
100
100
  models = MODELS_MAP[g_param[OptionsDefine.Version]]
101
- model = models.DescribeInstanceSpecsRequest()
101
+ model = models.DescribeBackupConfigRequest()
102
102
  model.from_json_string(json.dumps(args))
103
103
  start_time = time.time()
104
104
  while True:
105
- rsp = client.DescribeInstanceSpecs(model)
105
+ rsp = client.DescribeBackupConfig(model)
106
106
  result = rsp.to_json_string()
107
107
  try:
108
108
  json_obj = json.loads(result)
@@ -797,6 +797,58 @@ def doRenewClusters(args, parsed_globals):
797
797
  FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
798
798
 
799
799
 
800
+ def doCloseProxyEndPoint(args, parsed_globals):
801
+ g_param = parse_global_arg(parsed_globals)
802
+
803
+ if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
804
+ cred = credential.CVMRoleCredential()
805
+ elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
806
+ cred = credential.STSAssumeRoleCredential(
807
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
808
+ g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
809
+ )
810
+ 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):
811
+ cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
812
+ else:
813
+ cred = credential.Credential(
814
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
815
+ )
816
+ http_profile = HttpProfile(
817
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
818
+ reqMethod="POST",
819
+ endpoint=g_param[OptionsDefine.Endpoint],
820
+ proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
821
+ )
822
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
823
+ if g_param[OptionsDefine.Language]:
824
+ profile.language = g_param[OptionsDefine.Language]
825
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
826
+ client = mod.CynosdbClient(cred, g_param[OptionsDefine.Region], profile)
827
+ client._sdkVersion += ("_CLI_" + __version__)
828
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
829
+ model = models.CloseProxyEndPointRequest()
830
+ model.from_json_string(json.dumps(args))
831
+ start_time = time.time()
832
+ while True:
833
+ rsp = client.CloseProxyEndPoint(model)
834
+ result = rsp.to_json_string()
835
+ try:
836
+ json_obj = json.loads(result)
837
+ except TypeError as e:
838
+ json_obj = json.loads(result.decode('utf-8')) # python3.3
839
+ if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
840
+ break
841
+ cur_time = time.time()
842
+ if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
843
+ raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
844
+ (g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
845
+ search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
846
+ else:
847
+ print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
848
+ time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
849
+ FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
850
+
851
+
800
852
  def doCloseProxy(args, parsed_globals):
801
853
  g_param = parse_global_arg(parsed_globals)
802
854
 
@@ -1057,7 +1109,7 @@ def doDescribeTasks(args, parsed_globals):
1057
1109
  FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
1058
1110
 
1059
1111
 
1060
- def doDescribeBackupConfig(args, parsed_globals):
1112
+ def doDescribeInstanceSpecs(args, parsed_globals):
1061
1113
  g_param = parse_global_arg(parsed_globals)
1062
1114
 
1063
1115
  if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
@@ -1086,11 +1138,11 @@ def doDescribeBackupConfig(args, parsed_globals):
1086
1138
  client = mod.CynosdbClient(cred, g_param[OptionsDefine.Region], profile)
1087
1139
  client._sdkVersion += ("_CLI_" + __version__)
1088
1140
  models = MODELS_MAP[g_param[OptionsDefine.Version]]
1089
- model = models.DescribeBackupConfigRequest()
1141
+ model = models.DescribeInstanceSpecsRequest()
1090
1142
  model.from_json_string(json.dumps(args))
1091
1143
  start_time = time.time()
1092
1144
  while True:
1093
- rsp = client.DescribeBackupConfig(model)
1145
+ rsp = client.DescribeInstanceSpecs(model)
1094
1146
  result = rsp.to_json_string()
1095
1147
  try:
1096
1148
  json_obj = json.loads(result)
@@ -2565,7 +2617,7 @@ def doIsolateCluster(args, parsed_globals):
2565
2617
  FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
2566
2618
 
2567
2619
 
2568
- def doDescribeProxySpecs(args, parsed_globals):
2620
+ def doDescribeInstancesWithinSameCluster(args, parsed_globals):
2569
2621
  g_param = parse_global_arg(parsed_globals)
2570
2622
 
2571
2623
  if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
@@ -2594,11 +2646,11 @@ def doDescribeProxySpecs(args, parsed_globals):
2594
2646
  client = mod.CynosdbClient(cred, g_param[OptionsDefine.Region], profile)
2595
2647
  client._sdkVersion += ("_CLI_" + __version__)
2596
2648
  models = MODELS_MAP[g_param[OptionsDefine.Version]]
2597
- model = models.DescribeProxySpecsRequest()
2649
+ model = models.DescribeInstancesWithinSameClusterRequest()
2598
2650
  model.from_json_string(json.dumps(args))
2599
2651
  start_time = time.time()
2600
2652
  while True:
2601
- rsp = client.DescribeProxySpecs(model)
2653
+ rsp = client.DescribeInstancesWithinSameCluster(model)
2602
2654
  result = rsp.to_json_string()
2603
2655
  try:
2604
2656
  json_obj = json.loads(result)
@@ -3709,6 +3761,58 @@ def doAddInstances(args, parsed_globals):
3709
3761
  FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
3710
3762
 
3711
3763
 
3764
+ def doDescribeProxySpecs(args, parsed_globals):
3765
+ g_param = parse_global_arg(parsed_globals)
3766
+
3767
+ if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
3768
+ cred = credential.CVMRoleCredential()
3769
+ elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
3770
+ cred = credential.STSAssumeRoleCredential(
3771
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
3772
+ g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
3773
+ )
3774
+ 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):
3775
+ cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
3776
+ else:
3777
+ cred = credential.Credential(
3778
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
3779
+ )
3780
+ http_profile = HttpProfile(
3781
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
3782
+ reqMethod="POST",
3783
+ endpoint=g_param[OptionsDefine.Endpoint],
3784
+ proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
3785
+ )
3786
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
3787
+ if g_param[OptionsDefine.Language]:
3788
+ profile.language = g_param[OptionsDefine.Language]
3789
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
3790
+ client = mod.CynosdbClient(cred, g_param[OptionsDefine.Region], profile)
3791
+ client._sdkVersion += ("_CLI_" + __version__)
3792
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
3793
+ model = models.DescribeProxySpecsRequest()
3794
+ model.from_json_string(json.dumps(args))
3795
+ start_time = time.time()
3796
+ while True:
3797
+ rsp = client.DescribeProxySpecs(model)
3798
+ result = rsp.to_json_string()
3799
+ try:
3800
+ json_obj = json.loads(result)
3801
+ except TypeError as e:
3802
+ json_obj = json.loads(result.decode('utf-8')) # python3.3
3803
+ if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
3804
+ break
3805
+ cur_time = time.time()
3806
+ if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
3807
+ raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
3808
+ (g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
3809
+ search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
3810
+ else:
3811
+ print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
3812
+ time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
3813
+ FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
3814
+
3815
+
3712
3816
  def doModifyInstanceUpgradeLimitDays(args, parsed_globals):
3713
3817
  g_param = parse_global_arg(parsed_globals)
3714
3818
 
@@ -7881,7 +7985,7 @@ MODELS_MAP = {
7881
7985
 
7882
7986
  ACTION_MAP = {
7883
7987
  "ResumeServerless": doResumeServerless,
7884
- "DescribeInstanceSpecs": doDescribeInstanceSpecs,
7988
+ "DescribeBackupConfig": doDescribeBackupConfig,
7885
7989
  "ModifyBinlogConfig": doModifyBinlogConfig,
7886
7990
  "CreateProxyEndPoint": doCreateProxyEndPoint,
7887
7991
  "ModifyResourcePackageClusters": doModifyResourcePackageClusters,
@@ -7895,12 +7999,13 @@ ACTION_MAP = {
7895
7999
  "DescribeSupportProxyVersion": doDescribeSupportProxyVersion,
7896
8000
  "CreateAuditLogFile": doCreateAuditLogFile,
7897
8001
  "RenewClusters": doRenewClusters,
8002
+ "CloseProxyEndPoint": doCloseProxyEndPoint,
7898
8003
  "CloseProxy": doCloseProxy,
7899
8004
  "ExportResourcePackageDeductDetails": doExportResourcePackageDeductDetails,
7900
8005
  "InquirePriceModify": doInquirePriceModify,
7901
8006
  "DescribeClusterDetail": doDescribeClusterDetail,
7902
8007
  "DescribeTasks": doDescribeTasks,
7903
- "DescribeBackupConfig": doDescribeBackupConfig,
8008
+ "DescribeInstanceSpecs": doDescribeInstanceSpecs,
7904
8009
  "DescribeBinlogDownloadUrl": doDescribeBinlogDownloadUrl,
7905
8010
  "DescribeResourcesByDealName": doDescribeResourcesByDealName,
7906
8011
  "ModifyClusterStorage": doModifyClusterStorage,
@@ -7929,7 +8034,7 @@ ACTION_MAP = {
7929
8034
  "CreateBackup": doCreateBackup,
7930
8035
  "OfflineInstance": doOfflineInstance,
7931
8036
  "IsolateCluster": doIsolateCluster,
7932
- "DescribeProxySpecs": doDescribeProxySpecs,
8037
+ "DescribeInstancesWithinSameCluster": doDescribeInstancesWithinSameCluster,
7933
8038
  "RestartInstance": doRestartInstance,
7934
8039
  "UpgradeProxy": doUpgradeProxy,
7935
8040
  "DescribeClusters": doDescribeClusters,
@@ -7951,6 +8056,7 @@ ACTION_MAP = {
7951
8056
  "SwitchClusterZone": doSwitchClusterZone,
7952
8057
  "OpenClusterTransparentEncrypt": doOpenClusterTransparentEncrypt,
7953
8058
  "AddInstances": doAddInstances,
8059
+ "DescribeProxySpecs": doDescribeProxySpecs,
7954
8060
  "ModifyInstanceUpgradeLimitDays": doModifyInstanceUpgradeLimitDays,
7955
8061
  "DeleteAccounts": doDeleteAccounts,
7956
8062
  "RevokeAccountPrivileges": doRevokeAccountPrivileges,
@@ -56,6 +56,13 @@
56
56
  "output": "CloseProxyResponse",
57
57
  "status": "online"
58
58
  },
59
+ "CloseProxyEndPoint": {
60
+ "document": "关闭数据库代理连接地址",
61
+ "input": "CloseProxyEndPointRequest",
62
+ "name": "关闭数据库代理连接地址",
63
+ "output": "CloseProxyEndPointResponse",
64
+ "status": "online"
65
+ },
59
66
  "CloseWan": {
60
67
  "document": "本接口(CloseWan)用于关闭外网。",
61
68
  "input": "CloseWanRequest",
@@ -441,6 +448,13 @@
441
448
  "output": "DescribeInstancesResponse",
442
449
  "status": "online"
443
450
  },
451
+ "DescribeInstancesWithinSameCluster": {
452
+ "document": "本接口(DescribeInstancesWithinSameCluster)用于查询同一集群下实例列表",
453
+ "input": "DescribeInstancesWithinSameClusterRequest",
454
+ "name": "查询同一集群下实例列表",
455
+ "output": "DescribeInstancesWithinSameClusterResponse",
456
+ "status": "online"
457
+ },
444
458
  "DescribeIsolatedInstances": {
445
459
  "document": "本接口(DescribeIsolatedInstances)用于查询回收站实例列表。",
446
460
  "input": "DescribeIsolatedInstancesRequest",
@@ -3156,6 +3170,62 @@
3156
3170
  ],
3157
3171
  "type": "object"
3158
3172
  },
3173
+ "CloseProxyEndPointRequest": {
3174
+ "document": "CloseProxyEndPoint请求参数结构体",
3175
+ "members": [
3176
+ {
3177
+ "disabled": false,
3178
+ "document": "集群ID",
3179
+ "example": "cynosdbmysql-xxxxxxx",
3180
+ "member": "string",
3181
+ "name": "ClusterId",
3182
+ "required": true,
3183
+ "type": "string"
3184
+ },
3185
+ {
3186
+ "disabled": false,
3187
+ "document": "数据库代理组ID",
3188
+ "example": "无",
3189
+ "member": "string",
3190
+ "name": "ProxyGroupId",
3191
+ "required": true,
3192
+ "type": "string"
3193
+ }
3194
+ ],
3195
+ "type": "object"
3196
+ },
3197
+ "CloseProxyEndPointResponse": {
3198
+ "document": "CloseProxyEndPoint返回参数结构体",
3199
+ "members": [
3200
+ {
3201
+ "disabled": false,
3202
+ "document": "异步流程ID",
3203
+ "example": "无",
3204
+ "member": "int64",
3205
+ "name": "FlowId",
3206
+ "output_required": true,
3207
+ "type": "int",
3208
+ "value_allowed_null": false
3209
+ },
3210
+ {
3211
+ "disabled": false,
3212
+ "document": "异步任务ID",
3213
+ "example": "无",
3214
+ "member": "int64",
3215
+ "name": "TaskId",
3216
+ "output_required": true,
3217
+ "type": "int",
3218
+ "value_allowed_null": false
3219
+ },
3220
+ {
3221
+ "document": "唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。",
3222
+ "member": "string",
3223
+ "name": "RequestId",
3224
+ "type": "string"
3225
+ }
3226
+ ],
3227
+ "type": "object"
3228
+ },
3159
3229
  "CloseProxyRequest": {
3160
3230
  "document": "CloseProxy请求参数结构体",
3161
3231
  "members": [
@@ -10597,6 +10667,62 @@
10597
10667
  ],
10598
10668
  "type": "object"
10599
10669
  },
10670
+ "DescribeInstancesWithinSameClusterRequest": {
10671
+ "document": "DescribeInstancesWithinSameCluster请求参数结构体",
10672
+ "members": [
10673
+ {
10674
+ "disabled": false,
10675
+ "document": "vpcId",
10676
+ "example": "xx",
10677
+ "member": "string",
10678
+ "name": "UniqVpcId",
10679
+ "required": true,
10680
+ "type": "string"
10681
+ },
10682
+ {
10683
+ "disabled": false,
10684
+ "document": "vip",
10685
+ "example": "xx",
10686
+ "member": "string",
10687
+ "name": "Vip",
10688
+ "required": true,
10689
+ "type": "string"
10690
+ }
10691
+ ],
10692
+ "type": "object"
10693
+ },
10694
+ "DescribeInstancesWithinSameClusterResponse": {
10695
+ "document": "DescribeInstancesWithinSameCluster返回参数结构体",
10696
+ "members": [
10697
+ {
10698
+ "disabled": false,
10699
+ "document": "实例个数",
10700
+ "example": "26",
10701
+ "member": "int64",
10702
+ "name": "TotalCount",
10703
+ "output_required": true,
10704
+ "type": "int",
10705
+ "value_allowed_null": false
10706
+ },
10707
+ {
10708
+ "disabled": false,
10709
+ "document": "实例ID列表",
10710
+ "example": "无",
10711
+ "member": "string",
10712
+ "name": "InstanceIds",
10713
+ "output_required": true,
10714
+ "type": "list",
10715
+ "value_allowed_null": false
10716
+ },
10717
+ {
10718
+ "document": "唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。",
10719
+ "member": "string",
10720
+ "name": "RequestId",
10721
+ "type": "string"
10722
+ }
10723
+ ],
10724
+ "type": "object"
10725
+ },
10600
10726
  "DescribeIsolatedInstancesRequest": {
10601
10727
  "document": "DescribeIsolatedInstances请求参数结构体",
10602
10728
  "members": [
@@ -64,6 +64,14 @@
64
64
  "title": "关闭数据库代理"
65
65
  }
66
66
  ],
67
+ "CloseProxyEndPoint": [
68
+ {
69
+ "document": "",
70
+ "input": "POST / HTTP/1.1\nHost: cynosdb.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: CloseProxyEndPoint\n<公共请求参数>\n\n{\n \"ClusterId\": \"abc\",\n \"ProxyGroupId\": \"abc\"\n}",
71
+ "output": "{\n \"Response\": {\n \"FlowId\": 0,\n \"TaskId\": 0,\n \"RequestId\": \"abc\"\n }\n}",
72
+ "title": "关闭数据库代理连接地址"
73
+ }
74
+ ],
67
75
  "CloseWan": [
68
76
  {
69
77
  "document": "",
@@ -522,6 +530,14 @@
522
530
  "title": "查询实例列表"
523
531
  }
524
532
  ],
533
+ "DescribeInstancesWithinSameCluster": [
534
+ {
535
+ "document": "查询统一集群下实例ID列表",
536
+ "input": "POST / HTTP/1.1\nHost: cynosdb.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: DescribeInstancesWithinSameCluster\n<公共请求参数>\n\n{\n \"UniqVpcId\": \"abc\",\n \"Vip\": \"abc\"\n}",
537
+ "output": "{\n \"Response\": {\n \"TotalCount\": 0,\n \"InstanceIds\": [\n \"abc\"\n ],\n \"RequestId\": \"abc\"\n }\n}",
538
+ "title": "查询统一集群下实例ID列表"
539
+ }
540
+ ],
525
541
  "DescribeIsolatedInstances": [
526
542
  {
527
543
  "document": "",
@@ -9205,6 +9205,16 @@
9205
9205
  "output_required": false,
9206
9206
  "type": "string",
9207
9207
  "value_allowed_null": true
9208
+ },
9209
+ {
9210
+ "disabled": false,
9211
+ "document": "签署参与人在本流程中的编号ID(每个流程不同),可用此ID来定位签署参与人在本流程的签署节点。\n注意:此字段可能返回 null,表示取不到有效值。",
9212
+ "example": "yDRS4UUg********sCOsHS",
9213
+ "member": "string",
9214
+ "name": "SignId",
9215
+ "output_required": false,
9216
+ "type": "string",
9217
+ "value_allowed_null": true
9208
9218
  }
9209
9219
  ],
9210
9220
  "usage": "out"
@@ -223,6 +223,7 @@
223
223
  "member": "int64",
224
224
  "name": "X",
225
225
  "output_required": true,
226
+ "required": false,
226
227
  "type": "int",
227
228
  "value_allowed_null": false
228
229
  },
@@ -233,6 +234,7 @@
233
234
  "member": "int64",
234
235
  "name": "Y",
235
236
  "output_required": true,
237
+ "required": false,
236
238
  "type": "int",
237
239
  "value_allowed_null": false
238
240
  },
@@ -243,6 +245,7 @@
243
245
  "member": "int64",
244
246
  "name": "Width",
245
247
  "output_required": true,
248
+ "required": false,
246
249
  "type": "int",
247
250
  "value_allowed_null": false
248
251
  },
@@ -253,11 +256,12 @@
253
256
  "member": "int64",
254
257
  "name": "Height",
255
258
  "output_required": true,
259
+ "required": false,
256
260
  "type": "int",
257
261
  "value_allowed_null": false
258
262
  }
259
263
  ],
260
- "usage": "out"
264
+ "usage": "both"
261
265
  },
262
266
  "FaceRect": {
263
267
  "document": "人脸框信息",
@@ -559,25 +563,27 @@
559
563
  {
560
564
  "disabled": false,
561
565
  "document": "人脸序号",
562
- "example": "",
566
+ "example": "",
563
567
  "member": "string",
564
568
  "name": "FaceId",
565
- "required": true,
569
+ "output_required": true,
570
+ "required": false,
566
571
  "type": "string",
567
572
  "value_allowed_null": false
568
573
  },
569
574
  {
570
575
  "disabled": false,
571
576
  "document": "人脸框信息",
572
- "example": "",
577
+ "example": "",
573
578
  "member": "FaceInfo",
574
579
  "name": "FaceInfo",
575
- "required": true,
580
+ "output_required": true,
581
+ "required": false,
576
582
  "type": "object",
577
583
  "value_allowed_null": false
578
584
  }
579
585
  ],
580
- "usage": "out"
586
+ "usage": "both"
581
587
  },
582
588
  "MergeInfo": {
583
589
  "document": "人脸图片和待被融合的素材模板图的人脸位置信息。",
@@ -570,7 +570,7 @@
570
570
  {
571
571
  "disabled": false,
572
572
  "document": "实例显示名称",
573
- "example": "test",
573
+ "example": "hai",
574
574
  "member": "string",
575
575
  "name": "InstanceName",
576
576
  "required": false,
@@ -958,7 +958,7 @@
958
958
  {
959
959
  "disabled": false,
960
960
  "document": "实例id\n注意:此字段可能返回 null,表示取不到有效值。",
961
- "example": "",
961
+ "example": "hai-k31lvhiv",
962
962
  "member": "string",
963
963
  "name": "InstanceId",
964
964
  "output_required": false,
@@ -1312,7 +1312,7 @@
1312
1312
  {
1313
1313
  "disabled": false,
1314
1314
  "document": "默认为False,True代表只验证接口连通性",
1315
- "example": "",
1315
+ "example": "False",
1316
1316
  "member": "bool",
1317
1317
  "name": "DryRun",
1318
1318
  "required": false,
@@ -1327,7 +1327,7 @@
1327
1327
  {
1328
1328
  "disabled": false,
1329
1329
  "document": "task任务id",
1330
- "example": "123456",
1330
+ "example": "232558431",
1331
1331
  "member": "uint64",
1332
1332
  "name": "TaskId",
1333
1333
  "output_required": false,
@@ -1367,7 +1367,7 @@
1367
1367
  {
1368
1368
  "disabled": false,
1369
1369
  "document": "默认为False,True代表只验证接口连通性",
1370
- "example": "",
1370
+ "example": "False",
1371
1371
  "member": "bool",
1372
1372
  "name": "DryRun",
1373
1373
  "required": false,
@@ -1382,7 +1382,7 @@
1382
1382
  {
1383
1383
  "disabled": false,
1384
1384
  "document": "task任务id",
1385
- "example": "123456",
1385
+ "example": "232558431",
1386
1386
  "member": "uint64",
1387
1387
  "name": "TaskId",
1388
1388
  "output_required": false,
@@ -20,7 +20,7 @@
20
20
  {
21
21
  "document": "查看指定实例hai-jklfaded的信息",
22
22
  "input": "POST / HTTP/1.1\nHost: hai.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: DescribeInstances\n<公共请求参数>\n\n{\n \"InstanceIds\": [\n \"hai-jklfaded\"\n ],\n \"Offset\": 0,\n \"Limit\": 1\n}",
23
- "output": "{\n \"Response\": {\n \"TotalCount\": 10,\n \"InstanceSet\": [\n {\n \"InstanceId\": \"hai-jklfaded\",\n \"InstanceName\": \"abc\",\n \"InstanceState\": \"RUNNING\",\n \"ApplicationName\": \"pytorch\",\n \"BundleName\": \"基础型\",\n \"GPUPerformance\": \"8+TFlops\",\n \"GPUMemory\": \"16+GB\",\n \"CPU\": \"20C\",\n \"Memory\": \"80GB\",\n \"SystemDisk\": {\n \"DiskType\": \"CLOUD_SSD\",\n \"DiskSize\": 80\n },\n \"PrivateIpAddresses\": [\n \"1.1.1.1\"\n ],\n \"PublicIpAddresses\": [\n \"2.2.2.2\"\n ],\n \"SecurityGroupIds\": [\n \"sg-xxxxxxxx\"\n ],\n \"LatestOperation\": \"RunInstances\",\n \"LatestOperationState\": \"SUCCESS\",\n \"CreateTime\": \"2023-08-01 00:00:00\",\n \"MaxOutBandwidth\": \"10Mbps\",\n \"MaxFreeTraffic\": \"1000GB\",\n \"ConfigurationEnvironment\": \"cuda 10 | pytorch | tensorflow\",\n \"LoginServices\": [\n {\n \"ServiceName\": \"jupyter\"\n }\n ],\n \"OSType\": \"linux\"\n }\n ],\n \"RequestId\": \"41fa870d-8592-493c-b794-9fe19f23e800\"\n }\n}",
23
+ "output": "{\n \"Response\": {\n \"TotalCount\": 10,\n \"InstanceSet\": [\n {\n \"InstanceId\": \"hai-jklfaded\",\n \"InstanceName\": \"hai\",\n \"InstanceState\": \"RUNNING\",\n \"ApplicationName\": \"pytorch\",\n \"BundleName\": \"基础型\",\n \"GPUPerformance\": \"8+TFlops\",\n \"GPUMemory\": \"16+GB\",\n \"CPU\": \"20C\",\n \"Memory\": \"80GB\",\n \"SystemDisk\": {\n \"DiskType\": \"CLOUD_SSD\",\n \"DiskSize\": 80\n },\n \"PrivateIpAddresses\": [\n \"1.1.1.1\"\n ],\n \"PublicIpAddresses\": [\n \"2.2.2.2\"\n ],\n \"SecurityGroupIds\": [\n \"sg-xxxxxxxx\"\n ],\n \"LatestOperation\": \"RunInstances\",\n \"LatestOperationState\": \"SUCCESS\",\n \"CreateTime\": \"2023-08-01 00:00:00\",\n \"MaxOutBandwidth\": \"10Mbps\",\n \"MaxFreeTraffic\": \"1000GB\",\n \"ConfigurationEnvironment\": \"cuda 10 | pytorch | tensorflow\",\n \"LoginServices\": [\n {\n \"ServiceName\": \"jupyter\"\n }\n ],\n \"OSType\": \"linux\"\n }\n ],\n \"RequestId\": \"41fa870d-8592-493c-b794-9fe19f23e800\"\n }\n}",
24
24
  "title": "查看指定实例hai-jklfaded的信息"
25
25
  }
26
26
  ],
@@ -51,7 +51,7 @@
51
51
  "InquirePriceRunInstances": [
52
52
  {
53
53
  "document": "",
54
- "input": "POST / HTTP/1.1\nHost: hai.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: InquirePriceRunInstances\n<公共请求参数>\n\n{\n \"ApplicationId\": \"app-jknfna\",\n \"BundleType\": \"S\",\n \"SystemDisk\": {\n \"DiskType\": \"CLOUD_PREMIUM\",\n \"DiskSize\": 250\n },\n \"InstanceName\": \"test\"\n}",
54
+ "input": "POST / HTTP/1.1\nHost: hai.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: InquirePriceRunInstances\n<公共请求参数>\n\n{\n \"ApplicationId\": \"app-jknfna\",\n \"BundleType\": \"S\",\n \"SystemDisk\": {\n \"DiskType\": \"CLOUD_PREMIUM\",\n \"DiskSize\": 250\n },\n \"InstanceName\": \"hai\"\n}",
55
55
  "output": "{\n \"Response\": {\n \"Price\": {\n \"InstancePrice\": {\n \"UnitPrice\": 0.88,\n \"DiscountUnitPrice\": 0.88,\n \"Discount\": 100.0,\n \"ChargeUnit\": \"HOUR\",\n \"Amount\": 1\n },\n \"CloudDiskPrice\": {\n \"UnitPrice\": 0,\n \"DiscountUnitPrice\": 0,\n \"Discount\": 0,\n \"ChargeUnit\": \"HOUR\",\n \"Amount\": 1\n }\n },\n \"RequestId\": \"abc\"\n }\n}",
56
56
  "title": "发货询价"
57
57
  }