tccli 3.0.1347.1__py2.py3-none-any.whl → 3.0.1348.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.
tccli/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = '3.0.1347.1'
1
+ __version__ = '3.0.1348.1'
@@ -39,6 +39,9 @@ SERVICE_VERSIONS = {
39
39
  "afc": [
40
40
  "2020-02-26"
41
41
  ],
42
+ "ai3d": [
43
+ "2025-05-13"
44
+ ],
42
45
  "aiart": [
43
46
  "2022-12-29"
44
47
  ],
@@ -0,0 +1,4 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ from tccli.services.ai3d.ai3d_client import action_caller
4
+
@@ -0,0 +1,260 @@
1
+ # -*- coding: utf-8 -*-
2
+ import os
3
+ import sys
4
+ import six
5
+ import json
6
+ import tccli.options_define as OptionsDefine
7
+ import tccli.format_output as FormatOutput
8
+ from tccli import __version__
9
+ from tccli.utils import Utils
10
+ from tccli.exceptions import ConfigurationError, ClientError, ParamError
11
+ from tencentcloud.common import credential
12
+ from tencentcloud.common.profile.http_profile import HttpProfile
13
+ from tencentcloud.common.profile.client_profile import ClientProfile
14
+ from tencentcloud.ai3d.v20250513 import ai3d_client as ai3d_client_v20250513
15
+ from tencentcloud.ai3d.v20250513 import models as models_v20250513
16
+
17
+ from jmespath import search
18
+ import time
19
+
20
+ def doSubmitHunyuanTo3DJob(args, parsed_globals):
21
+ g_param = parse_global_arg(parsed_globals)
22
+
23
+ if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
24
+ cred = credential.CVMRoleCredential()
25
+ elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
26
+ cred = credential.STSAssumeRoleCredential(
27
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
28
+ g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
29
+ )
30
+ 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):
31
+ cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
32
+ else:
33
+ cred = credential.Credential(
34
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
35
+ )
36
+ http_profile = HttpProfile(
37
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
38
+ reqMethod="POST",
39
+ endpoint=g_param[OptionsDefine.Endpoint],
40
+ proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
41
+ )
42
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
43
+ if g_param[OptionsDefine.Language]:
44
+ profile.language = g_param[OptionsDefine.Language]
45
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
46
+ client = mod.Ai3dClient(cred, g_param[OptionsDefine.Region], profile)
47
+ client._sdkVersion += ("_CLI_" + __version__)
48
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
49
+ model = models.SubmitHunyuanTo3DJobRequest()
50
+ model.from_json_string(json.dumps(args))
51
+ start_time = time.time()
52
+ while True:
53
+ rsp = client.SubmitHunyuanTo3DJob(model)
54
+ result = rsp.to_json_string()
55
+ try:
56
+ json_obj = json.loads(result)
57
+ except TypeError as e:
58
+ json_obj = json.loads(result.decode('utf-8')) # python3.3
59
+ if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
60
+ break
61
+ cur_time = time.time()
62
+ if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
63
+ raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
64
+ (g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
65
+ search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
66
+ else:
67
+ print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
68
+ time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
69
+ FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
70
+
71
+
72
+ def doQueryHunyuanTo3DJob(args, parsed_globals):
73
+ g_param = parse_global_arg(parsed_globals)
74
+
75
+ if g_param[OptionsDefine.UseCVMRole.replace('-', '_')]:
76
+ cred = credential.CVMRoleCredential()
77
+ elif g_param[OptionsDefine.RoleArn.replace('-', '_')] and g_param[OptionsDefine.RoleSessionName.replace('-', '_')]:
78
+ cred = credential.STSAssumeRoleCredential(
79
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.RoleArn.replace('-', '_')],
80
+ g_param[OptionsDefine.RoleSessionName.replace('-', '_')], endpoint=g_param["sts_cred_endpoint"]
81
+ )
82
+ 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):
83
+ cred = credential.DefaultTkeOIDCRoleArnProvider().get_credentials()
84
+ else:
85
+ cred = credential.Credential(
86
+ g_param[OptionsDefine.SecretId], g_param[OptionsDefine.SecretKey], g_param[OptionsDefine.Token]
87
+ )
88
+ http_profile = HttpProfile(
89
+ reqTimeout=60 if g_param[OptionsDefine.Timeout] is None else int(g_param[OptionsDefine.Timeout]),
90
+ reqMethod="POST",
91
+ endpoint=g_param[OptionsDefine.Endpoint],
92
+ proxy=g_param[OptionsDefine.HttpsProxy.replace('-', '_')]
93
+ )
94
+ profile = ClientProfile(httpProfile=http_profile, signMethod="HmacSHA256")
95
+ if g_param[OptionsDefine.Language]:
96
+ profile.language = g_param[OptionsDefine.Language]
97
+ mod = CLIENT_MAP[g_param[OptionsDefine.Version]]
98
+ client = mod.Ai3dClient(cred, g_param[OptionsDefine.Region], profile)
99
+ client._sdkVersion += ("_CLI_" + __version__)
100
+ models = MODELS_MAP[g_param[OptionsDefine.Version]]
101
+ model = models.QueryHunyuanTo3DJobRequest()
102
+ model.from_json_string(json.dumps(args))
103
+ start_time = time.time()
104
+ while True:
105
+ rsp = client.QueryHunyuanTo3DJob(model)
106
+ result = rsp.to_json_string()
107
+ try:
108
+ json_obj = json.loads(result)
109
+ except TypeError as e:
110
+ json_obj = json.loads(result.decode('utf-8')) # python3.3
111
+ if not g_param[OptionsDefine.Waiter] or search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj) == g_param['OptionsDefine.WaiterInfo']['to']:
112
+ break
113
+ cur_time = time.time()
114
+ if cur_time - start_time >= g_param['OptionsDefine.WaiterInfo']['timeout']:
115
+ raise ClientError('Request timeout, wait `%s` to `%s` timeout, last request is %s' %
116
+ (g_param['OptionsDefine.WaiterInfo']['expr'], g_param['OptionsDefine.WaiterInfo']['to'],
117
+ search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj)))
118
+ else:
119
+ print('Inquiry result is %s.' % search(g_param['OptionsDefine.WaiterInfo']['expr'], json_obj))
120
+ time.sleep(g_param['OptionsDefine.WaiterInfo']['interval'])
121
+ FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
122
+
123
+
124
+ CLIENT_MAP = {
125
+ "v20250513": ai3d_client_v20250513,
126
+
127
+ }
128
+
129
+ MODELS_MAP = {
130
+ "v20250513": models_v20250513,
131
+
132
+ }
133
+
134
+ ACTION_MAP = {
135
+ "SubmitHunyuanTo3DJob": doSubmitHunyuanTo3DJob,
136
+ "QueryHunyuanTo3DJob": doQueryHunyuanTo3DJob,
137
+
138
+ }
139
+
140
+ AVAILABLE_VERSION_LIST = [
141
+ "v20250513",
142
+
143
+ ]
144
+
145
+
146
+ def action_caller():
147
+ return ACTION_MAP
148
+
149
+
150
+ def parse_global_arg(parsed_globals):
151
+ g_param = parsed_globals
152
+ cvm_role_flag = True
153
+ for param in parsed_globals.keys():
154
+ if param in [OptionsDefine.SecretKey, OptionsDefine.SecretId, OptionsDefine.RoleArn,
155
+ OptionsDefine.RoleSessionName]:
156
+ if parsed_globals[param] is not None:
157
+ cvm_role_flag = False
158
+ break
159
+ is_exist_profile = True
160
+ if not parsed_globals["profile"]:
161
+ is_exist_profile = False
162
+ g_param["profile"] = os.environ.get("TCCLI_PROFILE", "default")
163
+
164
+ configure_path = os.path.join(os.path.expanduser("~"), ".tccli")
165
+ is_conf_exist, conf_path = Utils.file_existed(configure_path, g_param["profile"] + ".configure")
166
+ is_cred_exist, cred_path = Utils.file_existed(configure_path, g_param["profile"] + ".credential")
167
+
168
+ conf = {}
169
+ cred = {}
170
+
171
+ if is_conf_exist:
172
+ conf = Utils.load_json_msg(conf_path)
173
+ if is_cred_exist:
174
+ cred = Utils.load_json_msg(cred_path)
175
+
176
+ if not (isinstance(conf, dict) and isinstance(cred, dict)):
177
+ raise ConfigurationError(
178
+ "file: %s or %s is not json format"
179
+ % (g_param["profile"] + ".configure", g_param["profile"] + ".credential"))
180
+
181
+ if OptionsDefine.Token not in cred:
182
+ cred[OptionsDefine.Token] = None
183
+
184
+ if not is_exist_profile:
185
+ if os.environ.get(OptionsDefine.ENV_SECRET_ID) and os.environ.get(OptionsDefine.ENV_SECRET_KEY):
186
+ cred[OptionsDefine.SecretId] = os.environ.get(OptionsDefine.ENV_SECRET_ID)
187
+ cred[OptionsDefine.SecretKey] = os.environ.get(OptionsDefine.ENV_SECRET_KEY)
188
+ cred[OptionsDefine.Token] = os.environ.get(OptionsDefine.ENV_TOKEN)
189
+ cvm_role_flag = False
190
+
191
+ if os.environ.get(OptionsDefine.ENV_REGION):
192
+ conf[OptionsDefine.SysParam][OptionsDefine.Region] = os.environ.get(OptionsDefine.ENV_REGION)
193
+
194
+ if os.environ.get(OptionsDefine.ENV_ROLE_ARN) and os.environ.get(OptionsDefine.ENV_ROLE_SESSION_NAME):
195
+ cred[OptionsDefine.RoleArn] = os.environ.get(OptionsDefine.ENV_ROLE_ARN)
196
+ cred[OptionsDefine.RoleSessionName] = os.environ.get(OptionsDefine.ENV_ROLE_SESSION_NAME)
197
+ cvm_role_flag = False
198
+
199
+ if cvm_role_flag:
200
+ if "type" in cred and cred["type"] == "cvm-role":
201
+ g_param[OptionsDefine.UseCVMRole.replace('-', '_')] = True
202
+
203
+ for param in g_param.keys():
204
+ if g_param[param] is None:
205
+ if param in [OptionsDefine.SecretKey, OptionsDefine.SecretId, OptionsDefine.Token]:
206
+ if param in cred:
207
+ g_param[param] = cred[param]
208
+ elif not (g_param[OptionsDefine.UseCVMRole.replace('-', '_')]
209
+ or os.getenv(OptionsDefine.ENV_TKE_ROLE_ARN)):
210
+ raise ConfigurationError("%s is invalid" % param)
211
+ elif param in [OptionsDefine.Region, OptionsDefine.Output, OptionsDefine.Language]:
212
+ if param in conf[OptionsDefine.SysParam]:
213
+ g_param[param] = conf[OptionsDefine.SysParam][param]
214
+ elif param != OptionsDefine.Language:
215
+ raise ConfigurationError("%s is invalid" % param)
216
+ elif param.replace('_', '-') in [OptionsDefine.RoleArn, OptionsDefine.RoleSessionName]:
217
+ if param.replace('_', '-') in cred:
218
+ g_param[param] = cred[param.replace('_', '-')]
219
+
220
+ try:
221
+ if g_param[OptionsDefine.ServiceVersion]:
222
+ g_param[OptionsDefine.Version] = "v" + g_param[OptionsDefine.ServiceVersion].replace('-', '')
223
+ else:
224
+ version = conf["ai3d"][OptionsDefine.Version]
225
+ g_param[OptionsDefine.Version] = "v" + version.replace('-', '')
226
+
227
+ if g_param[OptionsDefine.Endpoint] is None:
228
+ g_param[OptionsDefine.Endpoint] = conf["ai3d"][OptionsDefine.Endpoint]
229
+ g_param["sts_cred_endpoint"] = conf.get("sts", {}).get("endpoint")
230
+ except Exception as err:
231
+ raise ConfigurationError("config file:%s error, %s" % (conf_path, str(err)))
232
+
233
+ if g_param[OptionsDefine.Version] not in AVAILABLE_VERSION_LIST:
234
+ raise Exception("available versions: %s" % " ".join(AVAILABLE_VERSION_LIST))
235
+
236
+ if g_param[OptionsDefine.Waiter]:
237
+ param = eval(g_param[OptionsDefine.Waiter])
238
+ if 'expr' not in param:
239
+ raise Exception('`expr` in `--waiter` must be defined')
240
+ if 'to' not in param:
241
+ raise Exception('`to` in `--waiter` must be defined')
242
+ if 'timeout' not in param:
243
+ if 'waiter' in conf and 'timeout' in conf['waiter']:
244
+ param['timeout'] = conf['waiter']['timeout']
245
+ else:
246
+ param['timeout'] = 180
247
+ if 'interval' not in param:
248
+ if 'waiter' in conf and 'interval' in conf['waiter']:
249
+ param['interval'] = conf['waiter']['interval']
250
+ else:
251
+ param['interval'] = 5
252
+ param['interval'] = min(param['interval'], param['timeout'])
253
+ g_param['OptionsDefine.WaiterInfo'] = param
254
+
255
+ if six.PY2:
256
+ for key, value in g_param.items():
257
+ if isinstance(value, six.text_type):
258
+ g_param[key] = value.encode('utf-8')
259
+ return g_param
260
+
@@ -0,0 +1,239 @@
1
+ {
2
+ "actions": {
3
+ "QueryHunyuanTo3DJob": {
4
+ "document": "混元生3D接口,基于混元大模型,根据输入的文本描述/图片智能生成3D。\n默认提供1个并发,代表最多能同时处理1个已提交的任务,上一个任务处理完毕后,才能开始处理下一个任务。",
5
+ "input": "QueryHunyuanTo3DJobRequest",
6
+ "name": "查询混元生3D任务",
7
+ "output": "QueryHunyuanTo3DJobResponse",
8
+ "status": "online"
9
+ },
10
+ "SubmitHunyuanTo3DJob": {
11
+ "document": "混元生3D接口,基于混元大模型,根据输入的文本描述/图片智能生成3D。\n默认提供1个并发,代表最多能同时处理1个已提交的任务,上一个任务处理完毕后,才能开始处理下一个任务。",
12
+ "input": "SubmitHunyuanTo3DJobRequest",
13
+ "name": "提交混元生3D任务",
14
+ "output": "SubmitHunyuanTo3DJobResponse",
15
+ "status": "online"
16
+ }
17
+ },
18
+ "metadata": {
19
+ "apiVersion": "2025-05-13",
20
+ "api_brief": "基于混元大模型,支持根据文本描述或上传2D图像以及多视角图像,自动生成带PBR材质的高质量 3D 模型。",
21
+ "serviceNameCN": "腾讯混元生3D",
22
+ "serviceShortName": "ai3d"
23
+ },
24
+ "objects": {
25
+ "File3D": {
26
+ "document": "3D文件",
27
+ "members": [
28
+ {
29
+ "disabled": false,
30
+ "document": "3D文件的格式。取值范围:OBJ",
31
+ "example": "OBJ",
32
+ "member": "string",
33
+ "name": "Type",
34
+ "output_required": false,
35
+ "required": false,
36
+ "type": "string",
37
+ "value_allowed_null": false
38
+ },
39
+ {
40
+ "disabled": false,
41
+ "document": "文件的Url(有效期24小时)",
42
+ "example": "https://xxx.obj",
43
+ "member": "string",
44
+ "name": "Url",
45
+ "output_required": false,
46
+ "required": false,
47
+ "type": "string",
48
+ "value_allowed_null": false
49
+ },
50
+ {
51
+ "disabled": false,
52
+ "document": "预览图片Url",
53
+ "example": "https://xxx.png",
54
+ "member": "string",
55
+ "name": "PreviewImageUrl",
56
+ "output_required": false,
57
+ "required": false,
58
+ "type": "string",
59
+ "value_allowed_null": false
60
+ }
61
+ ],
62
+ "usage": "both"
63
+ },
64
+ "QueryHunyuanTo3DJobRequest": {
65
+ "document": "QueryHunyuanTo3DJob请求参数结构体",
66
+ "members": [
67
+ {
68
+ "disabled": false,
69
+ "document": "任务ID。",
70
+ "example": "1315932989749215232",
71
+ "member": "string",
72
+ "name": "JobId",
73
+ "required": false,
74
+ "type": "string"
75
+ }
76
+ ],
77
+ "type": "object"
78
+ },
79
+ "QueryHunyuanTo3DJobResponse": {
80
+ "document": "QueryHunyuanTo3DJob返回参数结构体",
81
+ "members": [
82
+ {
83
+ "disabled": false,
84
+ "document": "任务状态。WAIT:等待中,RUN:执行中,FAIL:任务失败,DONE:任务成功",
85
+ "example": "RUN",
86
+ "member": "string",
87
+ "name": "Status",
88
+ "output_required": false,
89
+ "type": "string",
90
+ "value_allowed_null": false
91
+ },
92
+ {
93
+ "disabled": false,
94
+ "document": "错误码",
95
+ "example": "InvalidParameter",
96
+ "member": "string",
97
+ "name": "ErrorCode",
98
+ "output_required": false,
99
+ "type": "string",
100
+ "value_allowed_null": false
101
+ },
102
+ {
103
+ "disabled": false,
104
+ "document": "错误信息",
105
+ "example": "参数错误",
106
+ "member": "string",
107
+ "name": "ErrorMessage",
108
+ "output_required": false,
109
+ "type": "string",
110
+ "value_allowed_null": false
111
+ },
112
+ {
113
+ "disabled": false,
114
+ "document": "生成的3D文件数组。",
115
+ "example": "无",
116
+ "member": "File3D",
117
+ "name": "ResultFile3Ds",
118
+ "output_required": false,
119
+ "type": "list",
120
+ "value_allowed_null": false
121
+ },
122
+ {
123
+ "document": "唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。",
124
+ "member": "string",
125
+ "name": "RequestId",
126
+ "type": "string"
127
+ }
128
+ ],
129
+ "type": "object"
130
+ },
131
+ "SubmitHunyuanTo3DJobRequest": {
132
+ "document": "SubmitHunyuanTo3DJob请求参数结构体",
133
+ "members": [
134
+ {
135
+ "disabled": false,
136
+ "document": "文生3D,3D内容的描述,中文正向提示词。\n最多支持200个 utf-8 字符。\n文生3D, image、image_url和 prompt必填其一,且prompt和image/image_url不能同时存在。",
137
+ "example": "一只小猫",
138
+ "member": "string",
139
+ "name": "Prompt",
140
+ "required": false,
141
+ "type": "string"
142
+ },
143
+ {
144
+ "disabled": false,
145
+ "document": "输入图 Base64 数据。\n大小:单边分辨率要求不小于128,不大于5000。大小不超过8m(base64编码后会大30%左右,建议实际输入图片不超过6m)\n格式:jpg,png,jpeg,webp。\nImageBase64、ImageUrl和 Prompt必填其一,且Prompt和ImageBase64/ImageUrl不能同时存在。",
146
+ "example": "/9j/4QlQaHR0c...N6a2M5ZCI",
147
+ "member": "string",
148
+ "name": "ImageBase64",
149
+ "required": false,
150
+ "type": "string"
151
+ },
152
+ {
153
+ "disabled": false,
154
+ "document": "输入图Url。\n大小:单边分辨率要求不小于128,不大于5000。大小不超过8m(base64编码后会大30%左右,建议实际输入图片不超过6m)\n格式:jpg,png,jpeg,webp。\nImageBase64/ImageUrl和 Prompt必填其一,且Prompt和ImageBase64/ImageUrl不能同时存在。",
155
+ "example": "https://xxx.com/imageurl.jpg",
156
+ "member": "string",
157
+ "name": "ImageUrl",
158
+ "required": false,
159
+ "type": "string"
160
+ },
161
+ {
162
+ "disabled": false,
163
+ "document": "多视角的模型图片,视角参考值:\nleft:左视图;\nright:右视图;\nback:后视图;\n\n每个视角仅限制一张图片。\n●图片大小限制:编码后大小不可超过8M。\n●图片分辨率限制:单边分辨率小于5000且大于128。\n●支持图片格式:支持jpg或png",
164
+ "example": "[{\"ViewType\":\"back\", \"ViewImageUrl\":\"https://xxx.com/imageurl.jpg\"}]",
165
+ "member": "ViewImage",
166
+ "name": "MultiViewImages",
167
+ "required": false,
168
+ "type": "list"
169
+ },
170
+ {
171
+ "disabled": false,
172
+ "document": "生成模型的格式,仅限制生成一种格式。\n生成模型文件组默认返回obj格式。\n可选值:OBJ,GLB,STL,USDZ,FBX,MP4。",
173
+ "example": "OBJ",
174
+ "member": "string",
175
+ "name": "ResultFormat",
176
+ "required": false,
177
+ "type": "string"
178
+ },
179
+ {
180
+ "disabled": false,
181
+ "document": "是否开启 PBR材质生成,默认 false。",
182
+ "example": "false",
183
+ "member": "bool",
184
+ "name": "EnablePBR",
185
+ "required": false,
186
+ "type": "bool"
187
+ }
188
+ ],
189
+ "type": "object"
190
+ },
191
+ "SubmitHunyuanTo3DJobResponse": {
192
+ "document": "SubmitHunyuanTo3DJob返回参数结构体",
193
+ "members": [
194
+ {
195
+ "disabled": false,
196
+ "document": "任务ID(有效期24小时)",
197
+ "example": "1315932989749215232",
198
+ "member": "string",
199
+ "name": "JobId",
200
+ "output_required": false,
201
+ "type": "string",
202
+ "value_allowed_null": false
203
+ },
204
+ {
205
+ "document": "唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。",
206
+ "member": "string",
207
+ "name": "RequestId",
208
+ "type": "string"
209
+ }
210
+ ],
211
+ "type": "object"
212
+ },
213
+ "ViewImage": {
214
+ "document": "多视角图片",
215
+ "members": [
216
+ {
217
+ "disabled": false,
218
+ "document": "视角类型。\n取值:back、left、right",
219
+ "example": "back",
220
+ "member": "string",
221
+ "name": "ViewType",
222
+ "required": false,
223
+ "type": "string"
224
+ },
225
+ {
226
+ "disabled": false,
227
+ "document": "图片Url地址",
228
+ "example": "http://xxx.com/image.jpg",
229
+ "member": "string",
230
+ "name": "ViewImageUrl",
231
+ "required": false,
232
+ "type": "string"
233
+ }
234
+ ],
235
+ "usage": "in"
236
+ }
237
+ },
238
+ "version": "1.0"
239
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "actions": {
3
+ "QueryHunyuanTo3DJob": [
4
+ {
5
+ "document": "",
6
+ "input": "POST / HTTP/1.1\nHost: ai3d.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: QueryHunyuanTo3DJob\n<公共请求参数>\n\n{\n \"JobId\": \"1315932989749215232\"\n}",
7
+ "output": "{\n \"Response\": {\n \"ErrorCode\": \"\",\n \"ErrorMessage\": \"\",\n \"RequestId\": \"cfbcde8e-dc35-47ec-adda-0fa6d5db1dd2\",\n \"ResultFile3Ds\": [\n {\n \"Type\": \"STL\",\n \"Url\": \"https://xxx.cos.ap-guangzhou.tencentcos.cn/xxx.stl\"\n }\n ],\n \"Status\": \"DONE\"\n }\n}",
8
+ "title": "调用请求示例"
9
+ }
10
+ ],
11
+ "SubmitHunyuanTo3DJob": [
12
+ {
13
+ "document": "",
14
+ "input": "POST / HTTP/1.1\nHost: ai3d.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: SubmitHunyuanTo3DJob\n<公共请求参数>\n\n{\n \"ImageUrl\": \"https://xxx.png\"\n}",
15
+ "output": "{\n \"Response\": {\n \"JobId\": \"1315932989749215232\",\n \"RequestId\": \"1efb4823-902e-4809-9656-aea168410e54\"\n }\n}",
16
+ "title": "调用请求示例"
17
+ }
18
+ ]
19
+ },
20
+ "version": "1.0"
21
+ }
@@ -7664,6 +7664,16 @@
7664
7664
  "output_required": true,
7665
7665
  "type": "string",
7666
7666
  "value_allowed_null": true
7667
+ },
7668
+ {
7669
+ "disabled": false,
7670
+ "document": "实例绑定的公网IPv6地址。",
7671
+ "example": "[\"240d:c000:f000:ac00:5460:6340:16aa:6\"]",
7672
+ "member": "string",
7673
+ "name": "PublicIPv6Addresses",
7674
+ "output_required": false,
7675
+ "type": "list",
7676
+ "value_allowed_null": false
7667
7677
  }
7668
7678
  ],
7669
7679
  "usage": "out"
@@ -8242,6 +8252,50 @@
8242
8252
  "required": false,
8243
8253
  "type": "string",
8244
8254
  "value_allowed_null": false
8255
+ },
8256
+ {
8257
+ "disabled": false,
8258
+ "document": "线路类型。各种线路类型详情可参考:[EIP 的 IP 地址类型](https://cloud.tencent.com/document/product/1199/41646)。默认值:BGP。\n\n- BGP:常规 BGP 线路\n\n已开通静态单线IP白名单的用户,可选值:\n\n - CMCC:中国移动\n - CTCC:中国电信\n - CUCC:中国联通\n\n注意:仅部分地域支持静态单线IP。\n示例值:BGP",
8259
+ "example": "CMCC",
8260
+ "member": "string",
8261
+ "name": "InternetServiceProvider",
8262
+ "output_required": false,
8263
+ "required": false,
8264
+ "type": "string",
8265
+ "value_allowed_null": false
8266
+ },
8267
+ {
8268
+ "disabled": false,
8269
+ "document": "公网 IP 类型。\n\n- WanIP:普通公网IP。\n- HighQualityEIP:精品 IP。仅新加坡和中国香港支持精品IP。\n- AntiDDoSEIP:高防 IP。仅部分地域支持高防IP,详情可见[弹性公网IP产品概述](https://cloud.tencent.com/document/product/1199/41646)。\n\n如需为资源分配公网IPv4地址,请指定公网IPv4地址类型。\n\n示例值:WanIP\n\n此功能仅部分地区灰度开发,如需使用[请提交工单咨询](https://console.cloud.tencent.com/workorder/category)",
8270
+ "example": "WanIP",
8271
+ "member": "string",
8272
+ "name": "IPv4AddressType",
8273
+ "output_required": false,
8274
+ "required": false,
8275
+ "type": "string",
8276
+ "value_allowed_null": false
8277
+ },
8278
+ {
8279
+ "disabled": false,
8280
+ "document": "弹性公网 IPv6 类型。\n- EIPv6:弹性公网 IPv6。\n- HighQualityEIPv6:精品 IPv6。仅中国香港支持精品IPv6。\n\n如需为资源分配IPv6地址,请指定弹性公网IPv6类型。\n示例值:EIPv6\n\n此功能仅部分地区灰度开发,如需使用[请提交工单咨询](https://console.cloud.tencent.com/workorder/category)",
8281
+ "example": "EIPv6",
8282
+ "member": "string",
8283
+ "name": "IPv6AddressType",
8284
+ "output_required": false,
8285
+ "required": false,
8286
+ "type": "string",
8287
+ "value_allowed_null": false
8288
+ },
8289
+ {
8290
+ "disabled": false,
8291
+ "document": "高防包唯一ID,申请高防IP时,该字段必传。\n示例值:bgp-12345678\n",
8292
+ "example": "bgp-12345678",
8293
+ "member": "string",
8294
+ "name": "AntiDDoSPackageId",
8295
+ "output_required": false,
8296
+ "required": false,
8297
+ "type": "string",
8298
+ "value_allowed_null": false
8245
8299
  }
8246
8300
  ],
8247
8301
  "usage": "both"
@@ -12531,6 +12585,15 @@
12531
12585
  "required": true,
12532
12586
  "type": "list"
12533
12587
  },
12588
+ {
12589
+ "disabled": false,
12590
+ "document": "释放弹性IP。EIP2.0下,仅提供主网卡下首个EIP,EIP类型限定在HighQualityEIP、AntiDDoSEIP、EIPv6、HighQualityEIPv6这几种类型。默认行为不释放。\n\n示例值:true\n默认值:false",
12591
+ "example": "true",
12592
+ "member": "bool",
12593
+ "name": "ReleaseAddress",
12594
+ "required": false,
12595
+ "type": "bool"
12596
+ },
12534
12597
  {
12535
12598
  "disabled": false,
12536
12599
  "document": "释放实例挂载的包年包月数据盘。true表示销毁实例同时释放包年包月数据盘,false表示只销毁实例。\n默认值:false",
@@ -2570,7 +2570,7 @@
2570
2570
  {
2571
2571
  "disabled": false,
2572
2572
  "document": "证件边缘是否完整\n0:正常\n1:边缘不完整",
2573
- "example": "",
2573
+ "example": "1",
2574
2574
  "member": "int64",
2575
2575
  "name": "BorderCheck",
2576
2576
  "output_required": false,
@@ -2581,7 +2581,7 @@
2581
2581
  {
2582
2582
  "disabled": false,
2583
2583
  "document": "证件是否被遮挡\n0:正常\n1:有遮挡",
2584
- "example": "",
2584
+ "example": "1",
2585
2585
  "member": "int64",
2586
2586
  "name": "OcclusionCheck",
2587
2587
  "output_required": false,
@@ -2592,7 +2592,7 @@
2592
2592
  {
2593
2593
  "disabled": false,
2594
2594
  "document": "是否复印\n0:正常\n1:复印件",
2595
- "example": "",
2595
+ "example": "1",
2596
2596
  "member": "int64",
2597
2597
  "name": "CopyCheck",
2598
2598
  "output_required": false,
@@ -2603,7 +2603,7 @@
2603
2603
  {
2604
2604
  "disabled": false,
2605
2605
  "document": "是否屏幕翻拍\n0:正常\n1:翻拍",
2606
- "example": "",
2606
+ "example": "1",
2607
2607
  "member": "int64",
2608
2608
  "name": "ReshootCheck",
2609
2609
  "output_required": false,
@@ -2614,13 +2614,35 @@
2614
2614
  {
2615
2615
  "disabled": false,
2616
2616
  "document": "证件是否有PS\n0:正常\n1:有PS",
2617
- "example": "",
2617
+ "example": "1",
2618
2618
  "member": "int64",
2619
2619
  "name": "PSCheck",
2620
2620
  "output_required": false,
2621
2621
  "required": false,
2622
2622
  "type": "int",
2623
2623
  "value_allowed_null": false
2624
+ },
2625
+ {
2626
+ "disabled": false,
2627
+ "document": "是否模糊:\n0:正常\n1:模糊",
2628
+ "example": "1",
2629
+ "member": "int64",
2630
+ "name": "BlurCheck",
2631
+ "output_required": false,
2632
+ "required": false,
2633
+ "type": "int",
2634
+ "value_allowed_null": false
2635
+ },
2636
+ {
2637
+ "disabled": false,
2638
+ "document": "模糊分数, 范围:0.0-1.0,分数越高越模糊,建议阈值为0.5",
2639
+ "example": "0.1",
2640
+ "member": "float",
2641
+ "name": "BlurScore",
2642
+ "output_required": false,
2643
+ "required": false,
2644
+ "type": "float",
2645
+ "value_allowed_null": false
2624
2646
  }
2625
2647
  ],
2626
2648
  "usage": "both"
@@ -5308,7 +5330,7 @@
5308
5330
  },
5309
5331
  {
5310
5332
  "disabled": false,
5311
- "document": "配置id支持:\nGeneral -- 通用场景 \nInvoiceEng -- 国际invoice模版 \nWayBillEng --海运订单模板\nCustomsDeclaration -- 进出口报关单\nWeightNote -- 磅单\nMedicalMeter -- 血压仪表识别\nBillOfLading -- 海运提单\nEntrustmentBook -- 海运托书\nStatement -- 对账单识别模板\nBookingConfirmation -- 配舱通知书识别模板\nAirWayBill -- 航空运单识别模板\nTable -- 表格模版\nSteelLabel -- 实物标签识别模板\nCarInsurance -- 车辆保险单识别模板",
5333
+ "document": "配置id支持:\nGeneral -- 通用场景 \nInvoiceEng -- 国际invoice模版 \nWayBillEng --海运订单模板\nCustomsDeclaration -- 进出口报关单\nWeightNote -- 磅单\nMedicalMeter -- 血压仪表识别\nBillOfLading -- 海运提单\nEntrustmentBook -- 海运托书\nStatement -- 对账单识别模板\nBookingConfirmation -- 配舱通知书识别模板\nAirWayBill -- 航空运单识别模板\nTable -- 表格模版\nSteelLabel -- 实物标签识别模板\nCarInsurance -- 车辆保险单识别模板\nMultiRealEstateCertificate -- 房产材料识别模板\nMultiRealEstateMaterial -- 房产证明识别模板\nHongKongUtilityBill -- 香港水电煤单识别模板",
5312
5334
  "example": "General",
5313
5335
  "member": "string",
5314
5336
  "name": "ConfigId",
@@ -15237,6 +15259,15 @@
15237
15259
  "name": "EnableWordCheck",
15238
15260
  "required": false,
15239
15261
  "type": "bool"
15262
+ },
15263
+ {
15264
+ "disabled": false,
15265
+ "document": "默认值为false,打开返回证件是否模糊。",
15266
+ "example": "false",
15267
+ "member": "bool",
15268
+ "name": "EnableQualityCheck",
15269
+ "required": false,
15270
+ "type": "bool"
15240
15271
  }
15241
15272
  ],
15242
15273
  "type": "object"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tccli
3
- Version: 3.0.1347.1
3
+ Version: 3.0.1348.1
4
4
  Summary: Universal Command Line Environment for Tencent Cloud
5
5
  Project-URL: Bug Tracker, https://github.com/TencentCloud/tencentcloud-cli/issues
6
6
  Project-URL: Homepage, https://github.com/TencentCloud/tencentcloud-cli
@@ -13,7 +13,7 @@ Classifier: Programming Language :: Python :: 2.7
13
13
  Classifier: Programming Language :: Python :: 3
14
14
  Requires-Dist: jmespath==0.10.0
15
15
  Requires-Dist: six==1.16.0
16
- Requires-Dist: tencentcloud-sdk-python>=3.0.1347
16
+ Requires-Dist: tencentcloud-sdk-python>=3.0.1348
17
17
  Description-Content-Type: text/markdown
18
18
 
19
19
  # 命令行工具简介
@@ -1,4 +1,4 @@
1
- tccli/__init__.py,sha256=1ZEP7GCXvARoxFvObqtLLyEt7fQkF0wsy4NZCSMfVp4,27
1
+ tccli/__init__.py,sha256=SysApQ36oLHqrtvqoFynWEZtKgc2dRPc4t1oCEpTrKI,27
2
2
  tccli/argparser.py,sha256=WtfpBhj2R6JHSzagy6w6Q4y3YVmyIC_yK80w3tqBPgU,5589
3
3
  tccli/argument.py,sha256=ZtVo3AySpzM-Hw6_hPdU27FjUsc8QPB2fIuLy7JSBAk,8091
4
4
  tccli/base_command.py,sha256=rFWNAwfS0GA6LLGNOM-iPI0RV81Jag5cZn536ZQN0pw,2859
@@ -50,7 +50,7 @@ tccli/plugins/sso/texts.py,sha256=N5bt3WXMk9oKWHFsuIG7jVVejdUi5Mzi8wsrhWX3t1s,22
50
50
  tccli/plugins/test/__init__.py,sha256=ed14rjeb4-Sf_uttli4x3gRl27FT2-NHPtQxRcdwE3o,2712
51
51
  tccli/plugins/test/add.py,sha256=L8EcHizXbEb8NiH1C-Giu9RPHRxe9rxGBDziaaFa1LE,1016
52
52
  tccli/services/MANIFEST.in,sha256=2Id4nQ7_YlPcmGJgB7Jz02hTv24e4LYMsl0CMORtVTU,26325
53
- tccli/services/__init__.py,sha256=dkE2PstecClQrqid2Akf2ep8nD2L5r1qMFQf1_5Hgso,12508
53
+ tccli/services/__init__.py,sha256=U6e37gXUQdUnVWLzLFdfkL1MwVjFhEE6qNfRSLApZb8,12550
54
54
  tccli/services/aai/__init__.py,sha256=rdDUjkY8plO-VPOkMMsKok6WjY3bGbBwJApC-0wtY0g,85
55
55
  tccli/services/aai/aai_client.py,sha256=f-9H1aR32XdfgLEiEigYkDZQOiRgKQdG7k1M3t2DvFc,18399
56
56
  tccli/services/aai/v20180522/api.json,sha256=58p3_oyQ4juYR9SOdCheq3IxfdTdr1izmFx5bkKNo84,14010
@@ -75,6 +75,10 @@ tccli/services/afc/__init__.py,sha256=C5YZmw5ckS76ldEIjklAv1FC3jjPRqjhuDdLD83V7D
75
75
  tccli/services/afc/afc_client.py,sha256=l36vlFMg-lgLHrfFcJaSyN9h29_mDeC-zXS8ORvuPg0,15397
76
76
  tccli/services/afc/v20200226/api.json,sha256=j0LyDTPODrK84S3K6IjPWtfWxcqjjp6Uriruw_v8A1g,30420
77
77
  tccli/services/afc/v20200226/examples.json,sha256=9Hpp5NQ7rbzf7budjRrfTXv1fQ046i6HT3jwg5Ohs_I,11403
78
+ tccli/services/ai3d/__init__.py,sha256=ker6RRKhtPgG1ph1cz2Fl979b0bbAC_xevKpaxyR6uk,87
79
+ tccli/services/ai3d/ai3d_client.py,sha256=6DPFxVCfa5f3Nzmb3baYgGgoGRVduZvK9fVOgHnv9a8,12319
80
+ tccli/services/ai3d/v20250513/api.json,sha256=43iKijrMOZFwIEVoIjacpDl8hWYTAAKlVtYcKWJAnpU,8899
81
+ tccli/services/ai3d/v20250513/examples.json,sha256=hwzIMZMnmHlglODQX9Ud2_ZIFNGgf8jqxYWttYnTxMk,1244
78
82
  tccli/services/aiart/__init__.py,sha256=Y-fYvm53hvADUxzlHVPLGQM3P-5cZMqfaKZ6MrBYYgY,89
79
83
  tccli/services/aiart/aiart_client.py,sha256=3-OFym-VnYrcTDtNCcLeeDxqQTHHsOFe1r8oP19zTX8,74013
80
84
  tccli/services/aiart/v20221229/api.json,sha256=bkyj-yBvs4Qa11zlKeQOFHzwwpMy2E01WFyfNlzyRcE,112461
@@ -359,7 +363,7 @@ tccli/services/ctem/v20231128/api.json,sha256=-tBV-AE9TeUbKWU-r3wNlGfNZLJJllBf8Q
359
363
  tccli/services/ctem/v20231128/examples.json,sha256=tOW-tsH0eB_qiobTkOfvnerjrKhNod2htRAvC8kJUqw,32903
360
364
  tccli/services/cvm/__init__.py,sha256=TlF7VMjJTb_ELng-8ghL1Zvrmu7MJyuNBU5KLiWrFnw,85
361
365
  tccli/services/cvm/cvm_client.py,sha256=75_lBsYh8j-Ug99sJTJbq3J03cqo8tz5PF95SQu4RQk,323400
362
- tccli/services/cvm/v20170312/api.json,sha256=5RNmWqQEK7dZxsirpIOWskF_OPf0A_q-oO4VAZ5Va94,559627
366
+ tccli/services/cvm/v20170312/api.json,sha256=CcV5gZp5SHA-rtv4a9xiGwehjElknGPeziLchksINQo,562986
363
367
  tccli/services/cvm/v20170312/examples.json,sha256=dDp09GmhOSt-413FSJJ_CD_Gv0zHoWhhTR5QMuVnKCY,133931
364
368
  tccli/services/cwp/__init__.py,sha256=VzfiK7QzpNmTiO4zrmILRFSkKMJka8elLwzYLTjUPFw,85
365
369
  tccli/services/cwp/cwp_client.py,sha256=wcx1ZRkkWZYgueKXKU0B4MuBsKpOvffcnMENCb0EehE,1605109
@@ -753,7 +757,7 @@ tccli/services/oceanus/v20190422/api.json,sha256=tnfkK27L50lIR9O2iw-LqbwLClaCKf9
753
757
  tccli/services/oceanus/v20190422/examples.json,sha256=VQDSTQARFa_rJWRhoHNXR-rLeKctJdhSFuglpvpMNQM,55299
754
758
  tccli/services/ocr/__init__.py,sha256=1UdHN9VtB5qVwAn2FMefSi4BhMTJOjmFgYZT-zTEVBM,85
755
759
  tccli/services/ocr/ocr_client.py,sha256=LSCtfuhBZUGwq8Rh2PptpDjiknSKhgiXQlI1HqgrN8c,274020
756
- tccli/services/ocr/v20181119/api.json,sha256=0S8S8SO99RERmxv6B821CYehFiZuRODSThFa0fPXJmQ,872486
760
+ tccli/services/ocr/v20181119/api.json,sha256=lRibDRqxCnB1jL0O8ybhhvy7QYdUgKqZ1Xhai3fQgRU,873617
757
761
  tccli/services/ocr/v20181119/examples.json,sha256=nOve89QEhLGQrBTacVnqfhQdW4R3fb4IdVf74GUZS4Y,510453
758
762
  tccli/services/omics/__init__.py,sha256=2Uhk7Pv4ejuVCryMqNlAdn8xPMdHO2Hr4500KAZ0W-M,89
759
763
  tccli/services/omics/omics_client.py,sha256=FMdcSDblBVzrf_RsMH7SCUVr3kFj8M24Eet4gyeeu2w,67560
@@ -1169,8 +1173,8 @@ tccli/services/yunsou/v20180504/api.json,sha256=2808fil5p3pTEJ3SqXEEq7eSrASZOiv8
1169
1173
  tccli/services/yunsou/v20180504/examples.json,sha256=Jg4WuqS_Wxl7eTBMbzjem65FuUZQi3qq3xtlBNFZlTU,11870
1170
1174
  tccli/services/yunsou/v20191115/api.json,sha256=r_p7c7fMNylQVDpSN0CkUB4Cx1nYW1lI3BM_Zi50FNs,15932
1171
1175
  tccli/services/yunsou/v20191115/examples.json,sha256=vN5MzexHVPMckm4MbnXNiOe3KKiVchvf4_uLpjOskuk,3983
1172
- tccli-3.0.1347.1.dist-info/METADATA,sha256=iJICN283ixHFGaUepmaGBzZfXJI_C39A8VHmCTwYvUM,16408
1173
- tccli-3.0.1347.1.dist-info/WHEEL,sha256=HyPWovjK_wfsxZqVnw7Bu5rgKxNh3Nm__lHm0ALDcb4,101
1174
- tccli-3.0.1347.1.dist-info/entry_points.txt,sha256=9ZzsXxi7Xj3ZneT7VxRVJpFvnmdEOeysh999_0gWVvo,85
1175
- tccli-3.0.1347.1.dist-info/license_files/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1176
- tccli-3.0.1347.1.dist-info/RECORD,,
1176
+ tccli-3.0.1348.1.dist-info/METADATA,sha256=3qF88pny_r5FX7NQ4QNqUzBqi2RCwtDJYjDGvjWNxRI,16408
1177
+ tccli-3.0.1348.1.dist-info/WHEEL,sha256=HyPWovjK_wfsxZqVnw7Bu5rgKxNh3Nm__lHm0ALDcb4,101
1178
+ tccli-3.0.1348.1.dist-info/entry_points.txt,sha256=9ZzsXxi7Xj3ZneT7VxRVJpFvnmdEOeysh999_0gWVvo,85
1179
+ tccli-3.0.1348.1.dist-info/license_files/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1180
+ tccli-3.0.1348.1.dist-info/RECORD,,