tccli 3.0.1152.1__py2.py3-none-any.whl → 3.0.1153.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 +1 -1
- tccli/services/__init__.py +3 -0
- tccli/services/cloudapp/__init__.py +4 -0
- tccli/services/cloudapp/cloudapp_client.py +195 -0
- tccli/services/cloudapp/v20220530/api.json +259 -0
- tccli/services/cloudapp/v20220530/examples.json +13 -0
- tccli/services/dsgc/v20190723/api.json +66 -3
- tccli/services/ess/v20201111/api.json +1 -1
- tccli/services/essbasic/v20210526/api.json +23 -5
- tccli/services/essbasic/v20210526/examples.json +8 -2
- tccli/services/lighthouse/v20200324/api.json +4 -4
- tccli/services/mongodb/v20190725/api.json +2 -2
- tccli/services/monitor/v20180724/api.json +36 -36
- tccli/services/monitor/v20180724/examples.json +25 -25
- tccli/services/tcr/v20190924/api.json +1 -1
- tccli/services/tcr/v20190924/examples.json +1 -1
- tccli/services/vpc/v20170312/api.json +1 -1
- tccli/services/waf/v20180125/examples.json +1 -1
- {tccli-3.0.1152.1.dist-info → tccli-3.0.1153.1.dist-info}/METADATA +2 -2
- {tccli-3.0.1152.1.dist-info → tccli-3.0.1153.1.dist-info}/RECORD +23 -19
- {tccli-3.0.1152.1.dist-info → tccli-3.0.1153.1.dist-info}/WHEEL +0 -0
- {tccli-3.0.1152.1.dist-info → tccli-3.0.1153.1.dist-info}/entry_points.txt +0 -0
- {tccli-3.0.1152.1.dist-info → tccli-3.0.1153.1.dist-info}/license_files/LICENSE +0 -0
tccli/__init__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = '3.0.
|
1
|
+
__version__ = '3.0.1153.1'
|
tccli/services/__init__.py
CHANGED
@@ -0,0 +1,195 @@
|
|
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.cloudapp.v20220530 import cloudapp_client as cloudapp_client_v20220530
|
15
|
+
from tencentcloud.cloudapp.v20220530 import models as models_v20220530
|
16
|
+
|
17
|
+
from jmespath import search
|
18
|
+
import time
|
19
|
+
|
20
|
+
def doVerifyLicense(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.CloudappClient(cred, g_param[OptionsDefine.Region], profile)
|
47
|
+
client._sdkVersion += ("_CLI_" + __version__)
|
48
|
+
models = MODELS_MAP[g_param[OptionsDefine.Version]]
|
49
|
+
model = models.VerifyLicenseRequest()
|
50
|
+
model.from_json_string(json.dumps(args))
|
51
|
+
start_time = time.time()
|
52
|
+
while True:
|
53
|
+
rsp = client.VerifyLicense(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
|
+
CLIENT_MAP = {
|
73
|
+
"v20220530": cloudapp_client_v20220530,
|
74
|
+
|
75
|
+
}
|
76
|
+
|
77
|
+
MODELS_MAP = {
|
78
|
+
"v20220530": models_v20220530,
|
79
|
+
|
80
|
+
}
|
81
|
+
|
82
|
+
ACTION_MAP = {
|
83
|
+
"VerifyLicense": doVerifyLicense,
|
84
|
+
|
85
|
+
}
|
86
|
+
|
87
|
+
AVAILABLE_VERSION_LIST = [
|
88
|
+
"v20220530",
|
89
|
+
|
90
|
+
]
|
91
|
+
|
92
|
+
|
93
|
+
def action_caller():
|
94
|
+
return ACTION_MAP
|
95
|
+
|
96
|
+
|
97
|
+
def parse_global_arg(parsed_globals):
|
98
|
+
g_param = parsed_globals
|
99
|
+
|
100
|
+
is_exist_profile = True
|
101
|
+
if not parsed_globals["profile"]:
|
102
|
+
is_exist_profile = False
|
103
|
+
g_param["profile"] = os.environ.get("TCCLI_PROFILE", "default")
|
104
|
+
|
105
|
+
configure_path = os.path.join(os.path.expanduser("~"), ".tccli")
|
106
|
+
is_conf_exist, conf_path = Utils.file_existed(configure_path, g_param["profile"] + ".configure")
|
107
|
+
is_cred_exist, cred_path = Utils.file_existed(configure_path, g_param["profile"] + ".credential")
|
108
|
+
|
109
|
+
conf = {}
|
110
|
+
cred = {}
|
111
|
+
|
112
|
+
if is_conf_exist:
|
113
|
+
conf = Utils.load_json_msg(conf_path)
|
114
|
+
if is_cred_exist:
|
115
|
+
cred = Utils.load_json_msg(cred_path)
|
116
|
+
|
117
|
+
if not (isinstance(conf, dict) and isinstance(cred, dict)):
|
118
|
+
raise ConfigurationError(
|
119
|
+
"file: %s or %s is not json format"
|
120
|
+
% (g_param["profile"] + ".configure", g_param["profile"] + ".credential"))
|
121
|
+
|
122
|
+
if OptionsDefine.Token not in cred:
|
123
|
+
cred[OptionsDefine.Token] = None
|
124
|
+
|
125
|
+
if not is_exist_profile:
|
126
|
+
if os.environ.get(OptionsDefine.ENV_SECRET_ID) and os.environ.get(OptionsDefine.ENV_SECRET_KEY):
|
127
|
+
cred[OptionsDefine.SecretId] = os.environ.get(OptionsDefine.ENV_SECRET_ID)
|
128
|
+
cred[OptionsDefine.SecretKey] = os.environ.get(OptionsDefine.ENV_SECRET_KEY)
|
129
|
+
cred[OptionsDefine.Token] = os.environ.get(OptionsDefine.ENV_TOKEN)
|
130
|
+
|
131
|
+
if os.environ.get(OptionsDefine.ENV_REGION):
|
132
|
+
conf[OptionsDefine.SysParam][OptionsDefine.Region] = os.environ.get(OptionsDefine.ENV_REGION)
|
133
|
+
|
134
|
+
if os.environ.get(OptionsDefine.ENV_ROLE_ARN) and os.environ.get(OptionsDefine.ENV_ROLE_SESSION_NAME):
|
135
|
+
cred[OptionsDefine.RoleArn] = os.environ.get(OptionsDefine.ENV_ROLE_ARN)
|
136
|
+
cred[OptionsDefine.RoleSessionName] = os.environ.get(OptionsDefine.ENV_ROLE_SESSION_NAME)
|
137
|
+
|
138
|
+
for param in g_param.keys():
|
139
|
+
if g_param[param] is None:
|
140
|
+
if param in [OptionsDefine.SecretKey, OptionsDefine.SecretId, OptionsDefine.Token]:
|
141
|
+
if param in cred:
|
142
|
+
g_param[param] = cred[param]
|
143
|
+
elif not (g_param[OptionsDefine.UseCVMRole.replace('-', '_')]
|
144
|
+
or os.getenv(OptionsDefine.ENV_TKE_ROLE_ARN)):
|
145
|
+
raise ConfigurationError("%s is invalid" % param)
|
146
|
+
elif param in [OptionsDefine.Region, OptionsDefine.Output, OptionsDefine.Language]:
|
147
|
+
if param in conf[OptionsDefine.SysParam]:
|
148
|
+
g_param[param] = conf[OptionsDefine.SysParam][param]
|
149
|
+
elif param != OptionsDefine.Language:
|
150
|
+
raise ConfigurationError("%s is invalid" % param)
|
151
|
+
elif param.replace('_', '-') in [OptionsDefine.RoleArn, OptionsDefine.RoleSessionName]:
|
152
|
+
if param.replace('_', '-') in cred:
|
153
|
+
g_param[param] = cred[param.replace('_', '-')]
|
154
|
+
|
155
|
+
try:
|
156
|
+
if g_param[OptionsDefine.ServiceVersion]:
|
157
|
+
g_param[OptionsDefine.Version] = "v" + g_param[OptionsDefine.ServiceVersion].replace('-', '')
|
158
|
+
else:
|
159
|
+
version = conf["cloudapp"][OptionsDefine.Version]
|
160
|
+
g_param[OptionsDefine.Version] = "v" + version.replace('-', '')
|
161
|
+
|
162
|
+
if g_param[OptionsDefine.Endpoint] is None:
|
163
|
+
g_param[OptionsDefine.Endpoint] = conf["cloudapp"][OptionsDefine.Endpoint]
|
164
|
+
g_param["sts_cred_endpoint"] = conf.get("sts", {}).get("endpoint")
|
165
|
+
except Exception as err:
|
166
|
+
raise ConfigurationError("config file:%s error, %s" % (conf_path, str(err)))
|
167
|
+
|
168
|
+
if g_param[OptionsDefine.Version] not in AVAILABLE_VERSION_LIST:
|
169
|
+
raise Exception("available versions: %s" % " ".join(AVAILABLE_VERSION_LIST))
|
170
|
+
|
171
|
+
if g_param[OptionsDefine.Waiter]:
|
172
|
+
param = eval(g_param[OptionsDefine.Waiter])
|
173
|
+
if 'expr' not in param:
|
174
|
+
raise Exception('`expr` in `--waiter` must be defined')
|
175
|
+
if 'to' not in param:
|
176
|
+
raise Exception('`to` in `--waiter` must be defined')
|
177
|
+
if 'timeout' not in param:
|
178
|
+
if 'waiter' in conf and 'timeout' in conf['waiter']:
|
179
|
+
param['timeout'] = conf['waiter']['timeout']
|
180
|
+
else:
|
181
|
+
param['timeout'] = 180
|
182
|
+
if 'interval' not in param:
|
183
|
+
if 'waiter' in conf and 'interval' in conf['waiter']:
|
184
|
+
param['interval'] = conf['waiter']['interval']
|
185
|
+
else:
|
186
|
+
param['interval'] = 5
|
187
|
+
param['interval'] = min(param['interval'], param['timeout'])
|
188
|
+
g_param['OptionsDefine.WaiterInfo'] = param
|
189
|
+
|
190
|
+
if six.PY2:
|
191
|
+
for key, value in g_param.items():
|
192
|
+
if isinstance(value, six.text_type):
|
193
|
+
g_param[key] = value.encode('utf-8')
|
194
|
+
return g_param
|
195
|
+
|
@@ -0,0 +1,259 @@
|
|
1
|
+
{
|
2
|
+
"actions": {
|
3
|
+
"VerifyLicense": {
|
4
|
+
"document": "通过运行时roleId查询对应的软件 LICENSE",
|
5
|
+
"input": "VerifyLicenseRequest",
|
6
|
+
"name": "从应用软件进程验证授权信息",
|
7
|
+
"output": "VerifyLicenseResponse",
|
8
|
+
"status": "online"
|
9
|
+
}
|
10
|
+
},
|
11
|
+
"metadata": {
|
12
|
+
"apiVersion": "2022-05-30",
|
13
|
+
"api_brief": "介绍如何使用 API 对云应用进行部署、管理等操作。",
|
14
|
+
"serviceNameCN": "云应用",
|
15
|
+
"serviceShortName": "cloudapp"
|
16
|
+
},
|
17
|
+
"objects": {
|
18
|
+
"License": {
|
19
|
+
"document": "表示应用实例的软件授权,包含颁发信息、激活信息等内容。",
|
20
|
+
"members": [
|
21
|
+
{
|
22
|
+
"disabled": false,
|
23
|
+
"document": "License ID",
|
24
|
+
"example": "LICENSE_CLOUDAPP_A95275D8",
|
25
|
+
"member": "string",
|
26
|
+
"name": "LicenseId",
|
27
|
+
"output_required": true,
|
28
|
+
"type": "string",
|
29
|
+
"value_allowed_null": false
|
30
|
+
},
|
31
|
+
{
|
32
|
+
"disabled": false,
|
33
|
+
"document": "软件授权模式。\n\n<table>\n<thead>\n<tr>\n<th>枚举值</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Permanent</td>\n<td>永久授权。该授权不受有效期限制。</td>\n</tr>\n<tr>\n<td>Subscription</td>\n<td>订阅授权。授权如果过了有效期,则会进入过期状态。</td>\n</tr>\n</tbody></table>",
|
34
|
+
"example": "Subscription",
|
35
|
+
"member": "string",
|
36
|
+
"name": "LicenseMode",
|
37
|
+
"output_required": true,
|
38
|
+
"type": "string",
|
39
|
+
"value_allowed_null": false
|
40
|
+
},
|
41
|
+
{
|
42
|
+
"disabled": false,
|
43
|
+
"document": "软件的授权状态。\n\n<table>\n<thead>\n<tr>\n<th>枚举值</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Issued</td>\n<td>已颁发,等待激活。一般来说,如果软件已经在运行,不会出现该状态。</td>\n</tr>\n<tr>\n<td>Active</td>\n<td>授权在有效期内,这是软件运行期间最常见的状态。</td>\n</tr>\n<tr>\n<td>Expired</td>\n<td>授权已过期。订阅类的软件授权有有效期,如果服务器时间已晚于有效期,则会进入过期状态。</td>\n</tr>\n<tr>\n<td>Deactivated</td>\n<td>授权已失效。用户如果退货软件,则授权会自动失效。</td>\n</tr>\n</tbody></table>",
|
44
|
+
"example": "Active",
|
45
|
+
"member": "string",
|
46
|
+
"name": "LicenseStatus",
|
47
|
+
"output_required": true,
|
48
|
+
"type": "string",
|
49
|
+
"value_allowed_null": false
|
50
|
+
},
|
51
|
+
{
|
52
|
+
"disabled": false,
|
53
|
+
"document": "软件供应方 ID。",
|
54
|
+
"example": "1000",
|
55
|
+
"member": "uint64",
|
56
|
+
"name": "ProviderId",
|
57
|
+
"output_required": true,
|
58
|
+
"type": "int",
|
59
|
+
"value_allowed_null": false
|
60
|
+
},
|
61
|
+
{
|
62
|
+
"disabled": false,
|
63
|
+
"document": "软件包 ID。",
|
64
|
+
"example": "pkg-kby01bv4",
|
65
|
+
"member": "string",
|
66
|
+
"name": "SoftwarePackageId",
|
67
|
+
"output_required": true,
|
68
|
+
"type": "string",
|
69
|
+
"value_allowed_null": false
|
70
|
+
},
|
71
|
+
{
|
72
|
+
"disabled": false,
|
73
|
+
"document": "软件包版本。",
|
74
|
+
"example": "1.0.0",
|
75
|
+
"member": "string",
|
76
|
+
"name": "SoftwarePackageVersion",
|
77
|
+
"output_required": true,
|
78
|
+
"type": "string",
|
79
|
+
"value_allowed_null": false
|
80
|
+
},
|
81
|
+
{
|
82
|
+
"disabled": false,
|
83
|
+
"document": "被授权的用户 UIN。",
|
84
|
+
"example": "100008888888",
|
85
|
+
"member": "string",
|
86
|
+
"name": "AuthorizedUserUin",
|
87
|
+
"output_required": true,
|
88
|
+
"type": "string",
|
89
|
+
"value_allowed_null": false
|
90
|
+
},
|
91
|
+
{
|
92
|
+
"disabled": false,
|
93
|
+
"document": "被授权的应用实例 ID。",
|
94
|
+
"example": "cloudapp-95t785d8",
|
95
|
+
"member": "string",
|
96
|
+
"name": "AuthorizedCloudappId",
|
97
|
+
"output_required": true,
|
98
|
+
"type": "string",
|
99
|
+
"value_allowed_null": false
|
100
|
+
},
|
101
|
+
{
|
102
|
+
"disabled": false,
|
103
|
+
"document": "被授权的角色 ID。",
|
104
|
+
"example": "4000008000060000",
|
105
|
+
"member": "string",
|
106
|
+
"name": "AuthorizedCloudappRoleId",
|
107
|
+
"output_required": true,
|
108
|
+
"type": "string",
|
109
|
+
"value_allowed_null": false
|
110
|
+
},
|
111
|
+
{
|
112
|
+
"disabled": false,
|
113
|
+
"document": "被授权的软件规格,具体字段请参考结构SaleParam",
|
114
|
+
"example": "无",
|
115
|
+
"member": "SaleParam",
|
116
|
+
"name": "AuthorizedSpecification",
|
117
|
+
"output_required": true,
|
118
|
+
"type": "list",
|
119
|
+
"value_allowed_null": false
|
120
|
+
},
|
121
|
+
{
|
122
|
+
"disabled": false,
|
123
|
+
"document": "被授权的软件的计费模式。\n\n<table>\n<thead>\n<tr>\n<th>枚举值</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>1</td>\n<td>线上计费,软件的授权从腾讯云线上购买,支持续费、退款等操作。</td>\n</tr>\n<tr>\n<td>2</td>\n<td>线下计费,软件的授权线下签订合同购买,定向客户交付,无法从线上续费和退款。</td>\n</tr>\n<tr>\n<td>4</td>\n<td>免费</td>\n</tr>\n</tbody></table>",
|
124
|
+
"example": "1",
|
125
|
+
"member": "int64",
|
126
|
+
"name": "BillingMode",
|
127
|
+
"output_required": true,
|
128
|
+
"type": "int",
|
129
|
+
"value_allowed_null": false
|
130
|
+
},
|
131
|
+
{
|
132
|
+
"disabled": false,
|
133
|
+
"document": "授权时长(单位由LifeSpanUnit确定,枚举值有Y年/M月/D日三种)",
|
134
|
+
"example": "1",
|
135
|
+
"member": "int64",
|
136
|
+
"name": "LifeSpan",
|
137
|
+
"output_required": false,
|
138
|
+
"type": "int",
|
139
|
+
"value_allowed_null": false
|
140
|
+
},
|
141
|
+
{
|
142
|
+
"disabled": false,
|
143
|
+
"document": "授权颁发时间。",
|
144
|
+
"example": "2024-06-29T00:00:00+08:00",
|
145
|
+
"member": "datetime_iso",
|
146
|
+
"name": "IssueDate",
|
147
|
+
"output_required": true,
|
148
|
+
"type": "string",
|
149
|
+
"value_allowed_null": false
|
150
|
+
},
|
151
|
+
{
|
152
|
+
"disabled": false,
|
153
|
+
"document": "授权激活时间,如从未激活则返回 null。\n注意:此字段可能返回 null,表示取不到有效值。",
|
154
|
+
"example": "2024-06-30T00:00:00+08:00",
|
155
|
+
"member": "datetime_iso",
|
156
|
+
"name": "ActivationDate",
|
157
|
+
"output_required": false,
|
158
|
+
"type": "string",
|
159
|
+
"value_allowed_null": true
|
160
|
+
},
|
161
|
+
{
|
162
|
+
"disabled": false,
|
163
|
+
"document": "授权过期时间,如未过期或者是永久授权,则返回 null。\n注意:此字段可能返回 null,表示取不到有效值。",
|
164
|
+
"example": "2025-06-30T00:00:00+08:00",
|
165
|
+
"member": "datetime_iso",
|
166
|
+
"name": "ExpirationDate",
|
167
|
+
"output_required": false,
|
168
|
+
"type": "string",
|
169
|
+
"value_allowed_null": true
|
170
|
+
},
|
171
|
+
{
|
172
|
+
"disabled": false,
|
173
|
+
"document": "授权时长单位,枚举值有Y年/M月/D日三种",
|
174
|
+
"example": "Y",
|
175
|
+
"member": "string",
|
176
|
+
"name": "LifeSpanUnit",
|
177
|
+
"output_required": false,
|
178
|
+
"type": "string",
|
179
|
+
"value_allowed_null": false
|
180
|
+
}
|
181
|
+
],
|
182
|
+
"usage": "out"
|
183
|
+
},
|
184
|
+
"SaleParam": {
|
185
|
+
"document": "表示商品 SKU 的单个售卖参数",
|
186
|
+
"members": [
|
187
|
+
{
|
188
|
+
"disabled": false,
|
189
|
+
"document": "售卖参数标识",
|
190
|
+
"example": "user_scale",
|
191
|
+
"member": "string",
|
192
|
+
"name": "ParamKey",
|
193
|
+
"output_required": true,
|
194
|
+
"type": "string",
|
195
|
+
"value_allowed_null": false
|
196
|
+
},
|
197
|
+
{
|
198
|
+
"disabled": false,
|
199
|
+
"document": "售卖参数值",
|
200
|
+
"example": "100",
|
201
|
+
"member": "string",
|
202
|
+
"name": "ParamValue",
|
203
|
+
"output_required": true,
|
204
|
+
"type": "string",
|
205
|
+
"value_allowed_null": false
|
206
|
+
},
|
207
|
+
{
|
208
|
+
"disabled": false,
|
209
|
+
"document": "售卖参数的展示名称\n注意:此字段可能返回 null,表示取不到有效值。",
|
210
|
+
"example": "用户规模",
|
211
|
+
"member": "string",
|
212
|
+
"name": "ParamKeyName",
|
213
|
+
"output_required": true,
|
214
|
+
"type": "string",
|
215
|
+
"value_allowed_null": true
|
216
|
+
},
|
217
|
+
{
|
218
|
+
"disabled": false,
|
219
|
+
"document": "售卖参数值的展示名称\n注意:此字段可能返回 null,表示取不到有效值。",
|
220
|
+
"example": "100人",
|
221
|
+
"member": "string",
|
222
|
+
"name": "ParamValueName",
|
223
|
+
"output_required": true,
|
224
|
+
"type": "string",
|
225
|
+
"value_allowed_null": true
|
226
|
+
}
|
227
|
+
],
|
228
|
+
"usage": "out"
|
229
|
+
},
|
230
|
+
"VerifyLicenseRequest": {
|
231
|
+
"document": "VerifyLicense请求参数结构体",
|
232
|
+
"members": [],
|
233
|
+
"type": "object"
|
234
|
+
},
|
235
|
+
"VerifyLicenseResponse": {
|
236
|
+
"document": "VerifyLicense返回参数结构体",
|
237
|
+
"members": [
|
238
|
+
{
|
239
|
+
"disabled": false,
|
240
|
+
"document": "软件的详细授权信息。",
|
241
|
+
"example": "见 License 数据结构。",
|
242
|
+
"member": "License",
|
243
|
+
"name": "License",
|
244
|
+
"output_required": true,
|
245
|
+
"type": "object",
|
246
|
+
"value_allowed_null": false
|
247
|
+
},
|
248
|
+
{
|
249
|
+
"document": "唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。",
|
250
|
+
"member": "string",
|
251
|
+
"name": "RequestId",
|
252
|
+
"type": "string"
|
253
|
+
}
|
254
|
+
],
|
255
|
+
"type": "object"
|
256
|
+
}
|
257
|
+
},
|
258
|
+
"version": "1.0"
|
259
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{
|
2
|
+
"actions": {
|
3
|
+
"VerifyLicense": [
|
4
|
+
{
|
5
|
+
"document": "",
|
6
|
+
"input": "POST / HTTP/1.1\nHost: cloudapp.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: VerifyLicense\n<公共请求参数>\n\n{}",
|
7
|
+
"output": "{\n \"Response\": {\n \"License\": {\n \"LicenseId\": \"abc\",\n \"LicenseMode\": \"abc\",\n \"LicenseStatus\": \"abc\",\n \"ProviderId\": 1,\n \"SoftwarePackageId\": \"abc\",\n \"SoftwarePackageVersion\": \"abc\",\n \"AuthorizedUserUin\": \"abc\",\n \"AuthorizedCloudappId\": \"abc\",\n \"AuthorizedCloudappRoleId\": \"abc\",\n \"AuthorizedSpecification\": [\n {\n \"ParamKey\": \"abc\",\n \"ParamValue\": \"abc\",\n \"ParamKeyName\": \"abc\",\n \"ParamValueName\": \"abc\"\n }\n ],\n \"BillingMode\": 0,\n \"LifeSpan\": 0,\n \"IssueDate\": \"2020-09-22T00:00:00+00:00\",\n \"ActivationDate\": \"2020-09-22T00:00:00+00:00\",\n \"ExpirationDate\": \"2020-09-22T00:00:00+00:00\",\n \"LifeSpanUnit\": \"abc\"\n },\n \"RequestId\": \"abc\"\n }\n}",
|
8
|
+
"title": "通过运行时roleId查询对应的软件 LICENSE"
|
9
|
+
}
|
10
|
+
]
|
11
|
+
},
|
12
|
+
"version": "1.0"
|
13
|
+
}
|
@@ -3955,6 +3955,33 @@
|
|
3955
3955
|
"name": "TimingStartTime",
|
3956
3956
|
"required": false,
|
3957
3957
|
"type": "string"
|
3958
|
+
},
|
3959
|
+
{
|
3960
|
+
"disabled": false,
|
3961
|
+
"document": "random-随机,asc生序,desc降序",
|
3962
|
+
"example": "抽样方式",
|
3963
|
+
"member": "string",
|
3964
|
+
"name": "Order",
|
3965
|
+
"required": false,
|
3966
|
+
"type": "string"
|
3967
|
+
},
|
3968
|
+
{
|
3969
|
+
"disabled": false,
|
3970
|
+
"document": "抽样的条数,范围30-1000",
|
3971
|
+
"example": "20",
|
3972
|
+
"member": "int64",
|
3973
|
+
"name": "Rows",
|
3974
|
+
"required": false,
|
3975
|
+
"type": "int"
|
3976
|
+
},
|
3977
|
+
{
|
3978
|
+
"disabled": false,
|
3979
|
+
"document": "抽样的排序字段",
|
3980
|
+
"example": "id",
|
3981
|
+
"member": "string",
|
3982
|
+
"name": "GlobalOrderField",
|
3983
|
+
"required": false,
|
3984
|
+
"type": "string"
|
3958
3985
|
}
|
3959
3986
|
],
|
3960
3987
|
"type": "object"
|
@@ -3968,7 +3995,7 @@
|
|
3968
3995
|
"example": "1",
|
3969
3996
|
"member": "int64",
|
3970
3997
|
"name": "TaskId",
|
3971
|
-
"
|
3998
|
+
"output_required": true,
|
3972
3999
|
"type": "int",
|
3973
4000
|
"value_allowed_null": false
|
3974
4001
|
},
|
@@ -3978,7 +4005,7 @@
|
|
3978
4005
|
"example": "1",
|
3979
4006
|
"member": "int64",
|
3980
4007
|
"name": "ResultId",
|
3981
|
-
"
|
4008
|
+
"output_required": true,
|
3982
4009
|
"type": "int",
|
3983
4010
|
"value_allowed_null": true
|
3984
4011
|
},
|
@@ -9480,6 +9507,24 @@
|
|
9480
9507
|
"name": "FieldResultId",
|
9481
9508
|
"required": true,
|
9482
9509
|
"type": "int"
|
9510
|
+
},
|
9511
|
+
{
|
9512
|
+
"disabled": false,
|
9513
|
+
"document": "排序方式",
|
9514
|
+
"example": "random",
|
9515
|
+
"member": "string",
|
9516
|
+
"name": "Order",
|
9517
|
+
"required": false,
|
9518
|
+
"type": "string"
|
9519
|
+
},
|
9520
|
+
{
|
9521
|
+
"disabled": false,
|
9522
|
+
"document": "排序字段",
|
9523
|
+
"example": "id",
|
9524
|
+
"member": "string",
|
9525
|
+
"name": "OrderField",
|
9526
|
+
"required": false,
|
9527
|
+
"type": "string"
|
9483
9528
|
}
|
9484
9529
|
],
|
9485
9530
|
"type": "object"
|
@@ -9924,6 +9969,24 @@
|
|
9924
9969
|
"name": "FieldResultId",
|
9925
9970
|
"required": true,
|
9926
9971
|
"type": "int"
|
9972
|
+
},
|
9973
|
+
{
|
9974
|
+
"disabled": false,
|
9975
|
+
"document": "排序方式",
|
9976
|
+
"example": "random",
|
9977
|
+
"member": "string",
|
9978
|
+
"name": "Order",
|
9979
|
+
"required": false,
|
9980
|
+
"type": "string"
|
9981
|
+
},
|
9982
|
+
{
|
9983
|
+
"disabled": false,
|
9984
|
+
"document": "排序字段",
|
9985
|
+
"example": "id",
|
9986
|
+
"member": "string",
|
9987
|
+
"name": "OrderField",
|
9988
|
+
"required": false,
|
9989
|
+
"type": "string"
|
9927
9990
|
}
|
9928
9991
|
],
|
9929
9992
|
"type": "object"
|
@@ -9937,7 +10000,7 @@
|
|
9937
10000
|
"example": "无",
|
9938
10001
|
"member": "DspaFieldResultDataSample",
|
9939
10002
|
"name": "Items",
|
9940
|
-
"
|
10003
|
+
"output_required": true,
|
9941
10004
|
"type": "list",
|
9942
10005
|
"value_allowed_null": true
|
9943
10006
|
},
|
@@ -6106,7 +6106,7 @@
|
|
6106
6106
|
},
|
6107
6107
|
{
|
6108
6108
|
"disabled": false,
|
6109
|
-
"document": "电子印章类型 , 可选类型如下: <ul><li>**OFFICIAL**: (默认)公章</li><li>**CONTRACT**: 合同专用章;</li><li>**FINANCE**: 财务专用章;</li><li>**PERSONNEL**: 人事专用章</li><li>**INVOICE**: 发票专用章</li></ul>注:
|
6109
|
+
"document": "电子印章类型 , 可选类型如下: <ul><li>**OFFICIAL**: (默认)公章</li><li>**CONTRACT**: 合同专用章;</li><li>**FINANCE**: 财务专用章;</li><li>**PERSONNEL**: 人事专用章</li><li>**INVOICE**: 发票专用章</li><li>**OTHER**: 其他</li></ul>注: 同企业下只能有<font color=\"red\">一个</font>公章, 重复创建会报错",
|
6110
6110
|
"example": "OFFICIAL",
|
6111
6111
|
"member": "string",
|
6112
6112
|
"name": "SealType",
|