tccli 3.0.1389.1__py2.py3-none-any.whl → 3.0.1390.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/ai3d/ai3d_client.py +106 -0
- tccli/services/ai3d/v20250513/api.json +172 -0
- tccli/services/ai3d/v20250513/examples.json +16 -0
- tccli/services/batch/v20170312/api.json +3 -3
- tccli/services/batch/v20170312/examples.json +3 -3
- tccli/services/cam/v20190116/api.json +11 -1
- tccli/services/ccc/v20200210/api.json +10 -10
- tccli/services/cdb/v20170320/api.json +40 -2
- tccli/services/cdz/v20221123/api.json +1 -1
- tccli/services/ckafka/v20190819/api.json +29 -21
- tccli/services/ckafka/v20190819/examples.json +1 -1
- tccli/services/cloudapp/cloudapp_client.py +53 -0
- tccli/services/cloudapp/v20220530/api.json +68 -0
- tccli/services/cloudapp/v20220530/examples.json +14 -0
- tccli/services/cls/cls_client.py +167 -8
- tccli/services/cls/v20201016/api.json +292 -2
- tccli/services/cls/v20201016/examples.json +24 -0
- tccli/services/dts/v20211206/api.json +15 -15
- tccli/services/dts/v20211206/examples.json +1 -1
- tccli/services/es/v20250101/api.json +99 -5
- tccli/services/ess/v20201111/api.json +145 -4
- tccli/services/ess/v20201111/examples.json +1 -1
- tccli/services/gme/v20180711/api.json +7 -7
- tccli/services/igtm/v20231024/api.json +3 -3
- tccli/services/iotexplorer/v20190423/api.json +19 -1
- tccli/services/iotexplorer/v20190423/examples.json +1 -1
- tccli/services/lighthouse/lighthouse_client.py +53 -0
- tccli/services/lighthouse/v20200324/api.json +228 -35
- tccli/services/lighthouse/v20200324/examples.json +8 -0
- tccli/services/live/v20180801/api.json +2 -2
- tccli/services/lowcode/lowcode_client.py +163 -4
- tccli/services/lowcode/v20210108/api.json +1373 -96
- tccli/services/lowcode/v20210108/examples.json +24 -0
- tccli/services/mps/v20190612/api.json +804 -47
- tccli/services/ocr/v20181119/api.json +3 -3
- tccli/services/sqlserver/v20180328/api.json +4 -4
- tccli/services/tcbr/v20220217/api.json +51 -0
- tccli/services/tdai/__init__.py +4 -0
- tccli/services/tdai/tdai_client.py +1108 -0
- tccli/services/tdai/v20250717/api.json +1930 -0
- tccli/services/tdai/v20250717/examples.json +149 -0
- tccli/services/teo/teo_client.py +53 -0
- tccli/services/teo/v20220901/api.json +111 -3
- tccli/services/teo/v20220901/examples.json +8 -0
- tccli/services/tmt/v20180321/api.json +3 -3
- tccli/services/tts/v20190823/api.json +11 -11
- tccli/services/vpc/v20170312/api.json +37 -7
- tccli/services/vpc/v20170312/examples.json +7 -7
- tccli/services/vtc/v20240223/api.json +3 -1
- tccli/services/vtc/v20240223/examples.json +1 -1
- tccli/services/waf/v20180125/api.json +6 -6
- {tccli-3.0.1389.1.dist-info → tccli-3.0.1390.1.dist-info}/METADATA +2 -2
- {tccli-3.0.1389.1.dist-info → tccli-3.0.1390.1.dist-info}/RECORD +58 -54
- {tccli-3.0.1389.1.dist-info → tccli-3.0.1390.1.dist-info}/WHEEL +0 -0
- {tccli-3.0.1389.1.dist-info → tccli-3.0.1390.1.dist-info}/entry_points.txt +0 -0
- {tccli-3.0.1389.1.dist-info → tccli-3.0.1390.1.dist-info}/license_files/LICENSE +0 -0
@@ -1620,7 +1620,7 @@
|
|
1620
1620
|
{
|
1621
1621
|
"disabled": false,
|
1622
1622
|
"document": "读写权重分配。如果 WeightMode 传的是 system ,则传入的权重不生效,由系统分配默认权重。",
|
1623
|
-
"example": "
|
1623
|
+
"example": "无",
|
1624
1624
|
"member": "ProxyAllocation",
|
1625
1625
|
"name": "ProxyAllocation",
|
1626
1626
|
"required": false,
|
@@ -1643,6 +1643,24 @@
|
|
1643
1643
|
"name": "AccessMode",
|
1644
1644
|
"required": false,
|
1645
1645
|
"type": "string"
|
1646
|
+
},
|
1647
|
+
{
|
1648
|
+
"disabled": false,
|
1649
|
+
"document": "是否将libra节点当作普通RO节点",
|
1650
|
+
"example": "true",
|
1651
|
+
"member": "string",
|
1652
|
+
"name": "ApNodeAsRoNode",
|
1653
|
+
"required": false,
|
1654
|
+
"type": "string"
|
1655
|
+
},
|
1656
|
+
{
|
1657
|
+
"disabled": false,
|
1658
|
+
"document": "libra节点故障,是否转发给其他节点",
|
1659
|
+
"example": "true",
|
1660
|
+
"member": "string",
|
1661
|
+
"name": "ApQueryToOtherNode",
|
1662
|
+
"required": false,
|
1663
|
+
"type": "string"
|
1646
1664
|
}
|
1647
1665
|
],
|
1648
1666
|
"type": "object"
|
@@ -18595,7 +18613,7 @@
|
|
18595
18613
|
{
|
18596
18614
|
"disabled": false,
|
18597
18615
|
"document": "实例读权重分配",
|
18598
|
-
"example": "
|
18616
|
+
"example": "无",
|
18599
18617
|
"member": "ProxyAllocation",
|
18600
18618
|
"name": "ProxyAllocation",
|
18601
18619
|
"output_required": true,
|
@@ -18621,6 +18639,26 @@
|
|
18621
18639
|
"output_required": false,
|
18622
18640
|
"type": "bool",
|
18623
18641
|
"value_allowed_null": false
|
18642
|
+
},
|
18643
|
+
{
|
18644
|
+
"disabled": false,
|
18645
|
+
"document": "是否把libra当作ro节点",
|
18646
|
+
"example": "false",
|
18647
|
+
"member": "bool",
|
18648
|
+
"name": "ApNodeAsRoNode",
|
18649
|
+
"output_required": false,
|
18650
|
+
"type": "bool",
|
18651
|
+
"value_allowed_null": false
|
18652
|
+
},
|
18653
|
+
{
|
18654
|
+
"disabled": false,
|
18655
|
+
"document": "libra节点故障,是否转发给其他节点",
|
18656
|
+
"example": "false",
|
18657
|
+
"member": "bool",
|
18658
|
+
"name": "ApQueryToOtherNode",
|
18659
|
+
"output_required": false,
|
18660
|
+
"type": "bool",
|
18661
|
+
"value_allowed_null": false
|
18624
18662
|
}
|
18625
18663
|
],
|
18626
18664
|
"usage": "out"
|
@@ -294,7 +294,7 @@
|
|
294
294
|
{
|
295
295
|
"disabled": false,
|
296
296
|
"document": "资源水位扩展信息",
|
297
|
-
"example": "
|
297
|
+
"example": "无",
|
298
298
|
"member": "ExtraInfo",
|
299
299
|
"name": "ExtraInfo",
|
300
300
|
"output_required": false,
|
@@ -3223,7 +3223,7 @@
|
|
3223
3223
|
{
|
3224
3224
|
"disabled": false,
|
3225
3225
|
"document": "任务名称,只能以字母起始,允许包含字母、数字、- 、. 、 下划线且长度不超过64 (、为分割符号规则不包含)",
|
3226
|
-
"example": "task
|
3226
|
+
"example": "task-test",
|
3227
3227
|
"member": "string",
|
3228
3228
|
"name": "TaskName",
|
3229
3229
|
"required": true,
|
@@ -5625,7 +5625,7 @@
|
|
5625
5625
|
},
|
5626
5626
|
{
|
5627
5627
|
"disabled": false,
|
5628
|
-
"document": "消费组名称,可通过DescribeConsumerGroup接口获取。",
|
5628
|
+
"document": "消费组名称,可通过[DescribeConsumerGroup](https://cloud.tencent.com/document/product/597/40841)接口获取。",
|
5629
5629
|
"example": "group-test",
|
5630
5630
|
"member": "string",
|
5631
5631
|
"name": "Group",
|
@@ -5745,7 +5745,7 @@
|
|
5745
5745
|
},
|
5746
5746
|
{
|
5747
5747
|
"disabled": false,
|
5748
|
-
"document": "路由id,可通过DescribeRoute接口获取",
|
5748
|
+
"document": "路由id,可通过[DescribeRoute](https://cloud.tencent.com/document/product/597/45484)接口获取",
|
5749
5749
|
"example": "301",
|
5750
5750
|
"member": "int64",
|
5751
5751
|
"name": "RouteId",
|
@@ -11457,18 +11457,16 @@
|
|
11457
11457
|
"member": "string",
|
11458
11458
|
"name": "PublicNetworkChargeType",
|
11459
11459
|
"required": false,
|
11460
|
-
"type": "string"
|
11461
|
-
"value_allowed_null": false
|
11460
|
+
"type": "string"
|
11462
11461
|
},
|
11463
11462
|
{
|
11464
11463
|
"disabled": false,
|
11465
|
-
"document": "公网带宽, 单位MB",
|
11464
|
+
"document": "公网带宽, 单位MB 取值需是0,或是3的倍数",
|
11466
11465
|
"example": "0",
|
11467
11466
|
"member": "int64",
|
11468
11467
|
"name": "PublicNetworkMonthly",
|
11469
11468
|
"required": false,
|
11470
|
-
"type": "int"
|
11471
|
-
"value_allowed_null": false
|
11469
|
+
"type": "int"
|
11472
11470
|
}
|
11473
11471
|
],
|
11474
11472
|
"usage": "in"
|
@@ -11784,7 +11782,7 @@
|
|
11784
11782
|
},
|
11785
11783
|
{
|
11786
11784
|
"disabled": false,
|
11787
|
-
"document": "
|
11785
|
+
"document": "实例类型 枚举列表: \nprofession :专业版 \nstandards2 :标准版\npremium :高级版\nserverless :serverless版",
|
11788
11786
|
"example": "profession",
|
11789
11787
|
"member": "string",
|
11790
11788
|
"name": "InstanceType",
|
@@ -11834,7 +11832,7 @@
|
|
11834
11832
|
},
|
11835
11833
|
{
|
11836
11834
|
"disabled": false,
|
11837
|
-
"document": "
|
11835
|
+
"document": "该字段已废弃,无实际含义",
|
11838
11836
|
"example": "1566144000",
|
11839
11837
|
"member": "string",
|
11840
11838
|
"name": "DeleteRouteTimestamp",
|
@@ -11874,7 +11872,7 @@
|
|
11874
11872
|
},
|
11875
11873
|
{
|
11876
11874
|
"disabled": false,
|
11877
|
-
"document": "实例计费类型",
|
11875
|
+
"document": "实例计费类型 POSTPAID_BY_HOUR 按小时付费; PREPAID 包年包月",
|
11878
11876
|
"example": "PREPAID",
|
11879
11877
|
"member": "string",
|
11880
11878
|
"name": "InstanceChargeType",
|
@@ -11884,7 +11882,7 @@
|
|
11884
11882
|
},
|
11885
11883
|
{
|
11886
11884
|
"disabled": false,
|
11887
|
-
"document": "集群类型",
|
11885
|
+
"document": "集群类型 \nCLOUD_IDC IDC集群\nCLOUD_CVM_SHARE CVM共享集群\nCLOUD_CVM_YUNTI 云梯CVM集群\nCLOUD_CVM CVM集群\nCLOUD_CDC CDC集群\nCLOUD_EKS_TSE EKS集群",
|
11888
11886
|
"example": "CLOUD_CVM",
|
11889
11887
|
"member": "string",
|
11890
11888
|
"name": "ClusterType",
|
@@ -11914,7 +11912,7 @@
|
|
11914
11912
|
},
|
11915
11913
|
{
|
11916
11914
|
"disabled": false,
|
11917
|
-
"document": "ssl自定义证书id",
|
11915
|
+
"document": "ssl自定义证书id 仅自定义证书实例集群返回",
|
11918
11916
|
"example": "cert-test",
|
11919
11917
|
"member": "string",
|
11920
11918
|
"name": "CustomCertId",
|
@@ -13639,7 +13637,7 @@
|
|
13639
13637
|
"example": "[\"topic-test\"]",
|
13640
13638
|
"member": "string",
|
13641
13639
|
"name": "Topics",
|
13642
|
-
"required":
|
13640
|
+
"required": true,
|
13643
13641
|
"type": "list"
|
13644
13642
|
},
|
13645
13643
|
{
|
@@ -14733,7 +14731,7 @@
|
|
14733
14731
|
},
|
14734
14732
|
{
|
14735
14733
|
"disabled": false,
|
14736
|
-
"document": "
|
14734
|
+
"document": "用于控制会话的持久性。cleanSession 为true时,连接时会创建一个全新的会话。 cleanSession = false时,连接时会恢复之前的会话。",
|
14737
14735
|
"example": "true",
|
14738
14736
|
"member": "bool",
|
14739
14737
|
"name": "CleanSession",
|
@@ -15203,7 +15201,7 @@
|
|
15203
15201
|
{
|
15204
15202
|
"disabled": false,
|
15205
15203
|
"document": "表与消息间的映射关系",
|
15206
|
-
"example": "
|
15204
|
+
"example": "无",
|
15207
15205
|
"member": "RecordMapping",
|
15208
15206
|
"name": "DataTargetRecordMapping",
|
15209
15207
|
"output_required": false,
|
@@ -15258,7 +15256,7 @@
|
|
15258
15256
|
{
|
15259
15257
|
"disabled": false,
|
15260
15258
|
"document": "当设置成员参数DropInvalidMessageToCls设置为true时,DropInvalidMessage参数失效",
|
15261
|
-
"example": "
|
15259
|
+
"example": "无",
|
15262
15260
|
"member": "DropCls",
|
15263
15261
|
"name": "DropCls",
|
15264
15262
|
"output_required": false,
|
@@ -15367,7 +15365,7 @@
|
|
15367
15365
|
},
|
15368
15366
|
{
|
15369
15367
|
"disabled": false,
|
15370
|
-
"document": "
|
15368
|
+
"document": "是否为自建集群",
|
15371
15369
|
"example": "false",
|
15372
15370
|
"member": "bool",
|
15373
15371
|
"name": "SelfBuilt",
|
@@ -16415,6 +16413,16 @@
|
|
16415
16413
|
"output_required": false,
|
16416
16414
|
"type": "string",
|
16417
16415
|
"value_allowed_null": true
|
16416
|
+
},
|
16417
|
+
{
|
16418
|
+
"disabled": false,
|
16419
|
+
"document": "路由的状态。1: 创建中,2: 创建成功,3: 创建失败,4: 删除中,6: 删除失败\n注意:此字段可能返回 null,表示取不到有效值。",
|
16420
|
+
"example": "2",
|
16421
|
+
"member": "int64",
|
16422
|
+
"name": "Status",
|
16423
|
+
"output_required": false,
|
16424
|
+
"type": "int",
|
16425
|
+
"value_allowed_null": true
|
16418
16426
|
}
|
16419
16427
|
],
|
16420
16428
|
"usage": "out"
|
@@ -16829,11 +16837,11 @@
|
|
16829
16837
|
"usage": "both"
|
16830
16838
|
},
|
16831
16839
|
"SaleInfo": {
|
16832
|
-
"document": "
|
16840
|
+
"document": "各版本销售信息",
|
16833
16841
|
"members": [
|
16834
16842
|
{
|
16835
16843
|
"disabled": false,
|
16836
|
-
"document": "手动设置的flag
|
16844
|
+
"document": "手动设置的flag标志,true表示售罄,false表示可售。",
|
16837
16845
|
"example": "false",
|
16838
16846
|
"member": "bool",
|
16839
16847
|
"name": "Flag",
|
@@ -18761,7 +18769,7 @@
|
|
18761
18769
|
},
|
18762
18770
|
{
|
18763
18771
|
"disabled": false,
|
18764
|
-
"document": "
|
18772
|
+
"document": "可用区是否售罄标识,true表示已售罄,false表示未售罄。",
|
18765
18773
|
"example": "false",
|
18766
18774
|
"member": "bool",
|
18767
18775
|
"name": "Flag",
|
@@ -671,7 +671,7 @@
|
|
671
671
|
"ModifyGroupOffsets": [
|
672
672
|
{
|
673
673
|
"document": "",
|
674
|
-
"input": "https://ckafka.tencentcloudapi.com/?Action=ModifyGroupOffsets\n&InstanceId=ckafka-test\n&Group=\"group\"\n&Strategy=1\n&<公共请求参数>",
|
674
|
+
"input": "https://ckafka.tencentcloudapi.com/?Action=ModifyGroupOffsets\n&InstanceId=ckafka-test\n&Group=\"group\"\n&Topics.0=topic-test\n&Strategy=1\n&<公共请求参数>",
|
675
675
|
"output": "{\n \"Response\": {\n \"Result\": {\n \"ReturnCode\": \"0\",\n \"ReturnMessage\": \"SUCCESS\",\n \"Data\": {\n \"FlowId\": 0\n }\n },\n \"RequestId\": \"36713f94-d07d-4b96-babf-42d139276f23\"\n }\n}",
|
676
676
|
"title": "设置Groups 消费分组offset"
|
677
677
|
}
|
@@ -69,6 +69,58 @@ def doVerifyLicense(args, parsed_globals):
|
|
69
69
|
FormatOutput.output("action", json_obj, g_param[OptionsDefine.Output], g_param[OptionsDefine.Filter])
|
70
70
|
|
71
71
|
|
72
|
+
def doDescribeLicense(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.CloudappClient(cred, g_param[OptionsDefine.Region], profile)
|
99
|
+
client._sdkVersion += ("_CLI_" + __version__)
|
100
|
+
models = MODELS_MAP[g_param[OptionsDefine.Version]]
|
101
|
+
model = models.DescribeLicenseRequest()
|
102
|
+
model.from_json_string(json.dumps(args))
|
103
|
+
start_time = time.time()
|
104
|
+
while True:
|
105
|
+
rsp = client.DescribeLicense(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
|
+
|
72
124
|
CLIENT_MAP = {
|
73
125
|
"v20220530": cloudapp_client_v20220530,
|
74
126
|
|
@@ -81,6 +133,7 @@ MODELS_MAP = {
|
|
81
133
|
|
82
134
|
ACTION_MAP = {
|
83
135
|
"VerifyLicense": doVerifyLicense,
|
136
|
+
"DescribeLicense": doDescribeLicense,
|
84
137
|
|
85
138
|
}
|
86
139
|
|
@@ -1,5 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"actions": {
|
3
|
+
"DescribeLicense": {
|
4
|
+
"document": "# DescribeLicense\n\n客户根据请求的参数获取当前名下的许可证信息\n\n```json\n{\n \"Filters\": [\n {\n \"Name\": \"QueryType\",\n \"Values\": [\"IncludeAddition\"]\n }\n ]\n}\n```\n\n返回的内容结构如下:\n\n- Response.RequestId 为当前请求的唯一 id\n- Response.Token 为 license 信息 jwt 加密后的 token 串\n\n```json\n{\n \"Response\": {\n \"RequestId\": \"cd15813b-adff-460e-b9fc-64579e96412d\",\n \"Token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjkzMjQ4MTc5ODAsImlhdCI6MTc1NjE3Nzk4MCwiaXNzIjoibGljZW5zZS1zZXJ2aWNlIiwicGF5bG9hZCI6eyJNYWluTGljZW5zZSI6eyJMaWNlbnNlTW9kZSI6IlN1YnNjcmlwdGlvbiIsIkJpbGxpbmdNb2RlIjoxLCJDcmVhdGVTb3VyY2UiOiJTTjE3MTk0MDc1NDc0SEJETSIsIkF1dGhvcml6ZWRDbG91ZGFwcFJvbGVJZCI6IjcwMDAwMTgzMzgwNiIsIkF1dGhvcml6ZWRDbG91ZGFwcElkIjoiY2xvdWRhcHAtc2V3ZWM2cHMiLCJBdXRob3JpemVkVXNlclVpbiI6IjcwMDAwMDkxODE1NiIsIkxpZmVTcGFuVW5pdCI6IlkiLCJMaWZlU3BhbiI6MzY1LCJTb2Z0d2FyZVBhY2thZ2VJZCI6InBrZy0xZ2xlaG9tNyIsIlNvZnR3YXJlUGFja2FnZVZlcnNpb24iOiIwLjAuMSIsIkF1dGhvcml6ZWRTcGVjaWZpY2F0aW9uIjpbeyJQYXJhbUtleSI6InZlcnNpb24iLCJQYXJhbUtleU5hbWUiOiLniYjmnKwiLCJQYXJhbVZhbHVlIjoiYmFzaWMiLCJQYXJhbVZhbHVlTmFtZSI6IuWfuuehgOeJiCJ9LHsiUGFyYW1LZXkiOiJzaXplIiwiUGFyYW1LZXlOYW1lIjoi6KeE5qC8IiwiUGFyYW1WYWx1ZSI6IjEwMCIsIlBhcmFtVmFsdWVOYW1lIjoiMTAw5Lq66KeE5qihIn1dLCJQcm92aWRlcklkIjoxMDAwMDAwNzEsIlByb3ZpZGVyVWluIjoiNzAwMDAwOTE4MTU2IiwiSXNzdWVEYXRlIjoiMjAyNC0wNi0yNlQyMToxMjozMiswODowMCIsIkFjdGl2YXRpb25EYXRlIjoiMjAyNC0wNi0yNlQyMToxMjozNSswODowMCIsIkV4cGlyYXRpb25EYXRlIjoiMjM4OS0wNi0yNlQyMToxMjozNSswODowMCIsIkxpY2Vuc2VTdGF0dXMiOiJBY3RpdmUiLCJMaWNlbnNlSWQiOiI3MDAwMDA5MTgxNTY6cGtnLTFnbGVob203OmNsb3VkYXBwLXNld2VjNnBzOjgwMDciLCJMaWNlbnNlVHlwZSI6IlN0YW5kYXJkIiwiTGljZW5zZUxldmVsIjoiTWFzdGVyIn0sIkFkZGl0aW9uTGljZW5zZXMiOltdLCJUaW1lc3RhbXAiOiIyMDI1LTA4LTI2VDExOjEzOjAwKzA4OjAwIn19.G8Lx49xZBW0Rh3lRA15XzZ-PzLJj0bAxwnklx0pTjrHWxqxQdETAdGfU_QaGI_WZfYh2IVbFcwHnRLiRj6pQb4guCMpCbcsgL28BRS4g1wnaFhjcyEQLLtpDdz4_lPnOR2VHHvnfwhLZtccAgsRpeedPMBK1hwO9D3WKisQg2LcIr0V-QB8gmgIqqyqrLW6z37QpjgB4ZyJ5bIC1J-0-VmghskA04xnQRPdGJtlyBhjzVjeDxBq5JOqm3Am0Nqu1jyTd3MuYgSRwJqkDyjVBOGFGGy6mZCIYnxU_ET6-0ZEendqYwXDkpYG4rZZv5YmRCXiSESYz0zx4czwmFWkw-TjRSvUQBxBfsoDcAgyzpY7zBOTnbrr7DyoMvVnnHo7vb0if8_vkub6o0MuRnvdDYxNJtnTtlIScCadWAIvWUQ1DlUw2kzS-h9Ju2h7JhKw9cUeutu0X_6V4arZu9JlgWT9Ns7BtS9Y5JxgQOd36Aan39Rwohy_BrVwjOkbvDuTFLc_yNUlNdq5T2GNbDjABCmi73CGhCuWyPgtRs4ftpPugDRrTe4E95F224jdhf7I0He-nY4i1MoVjz8Zzm4v0vH67cMfcu0XVhs7ywvmu5tBSwm0uuhAXFFIbSrgEzuadxNhSi6qVCFNLnjiPYplK1M9mxG8Hc-fU-0A0TPepx8Q\"\n }\n}\n```\n\n验签过程:\n对 Response.Token 内容使用公钥进行解码转换得到许可结构体信息,返回的内容结构如下,其中 paylod 中的信息为许可证信息结构:\n\n```json\n{\n \"exp\": 9324758169,\n \"iat\": 1756118169,\n \"iss\": \"license-service\",\n \"payload\": {\n \"MainLicense\": {\n \"LicenseMode\": \"Subscription\",\n \"BillingMode\": 1,\n \"CreateSource\": \"SN1719406931EJJ1E\",\n \"AuthorizedCloudappRoleId\": \"700001833621\",\n \"AuthorizedCloudappId\": \"cloudapp-992nqg9u\",\n \"AuthorizedUserUin\": \"700001833621\",\n \"LifeSpanUnit\": \"Y\",\n \"LifeSpan\": 365,\n \"SoftwarePackageId\": \"pkg-1glehom7\",\n \"SoftwarePackageVersion\": \"0.0.1\",\n \"AuthorizedSpecification\": [\n {\n \"ParamKey\": \"version\",\n \"ParamKeyName\": \"版本\",\n \"ParamValue\": \"basic\",\n \"ParamValueName\": \"基础版\"\n },\n {\n \"ParamKey\": \"size\",\n \"ParamKeyName\": \"规格\",\n \"ParamValue\": \"100\",\n \"ParamValueName\": \"100 人规模\"\n }\n ],\n \"ProviderId\": 100000071,\n \"ProviderUin\": \"700000918156\",\n \"IssueDate\": \"2024-06-26T21:02:16+08:00\",\n \"ActivationDate\": \"2024-06-26T21:02:19+08:00\",\n \"ExpirationDate\": \"2389-06-26T21:02:19+08:00\",\n \"LicenseStatus\": \"Active\",\n \"LicenseId\": \"700000918156:pkg-1glehom7:cloudapp-992nqg9u:3988\",\n \"LicenseType\": \"Standard\",\n \"LicenseLevel\": \"Master\"\n },\n \"AdditionLicenses\": [\n {\n \"LicenseMode\": \"Subscription\",\n \"BillingMode\": 1,\n \"CreateSource\": \"SN1719406931EJJ1E\",\n \"AuthorizedCloudappRoleId\": \"700001833621\",\n \"AuthorizedCloudappId\": \"cloudapp-992nqg9u\",\n \"AuthorizedUserUin\": \"700001833621\",\n \"LifeSpanUnit\": \"Y\",\n \"LifeSpan\": 365,\n \"SoftwarePackageId\": \"pkg-1glehom7\",\n \"SoftwarePackageVersion\": \"0.0.1\",\n \"AuthorizedSpecification\": [\n {\n \"ParamKey\": \"version\",\n \"ParamKeyName\": \"版本\",\n \"ParamValue\": \"basic\",\n \"ParamValueName\": \"基础版\"\n },\n {\n \"ParamKey\": \"size\",\n \"ParamKeyName\": \"规格\",\n \"ParamValue\": \"100\",\n \"ParamValueName\": \"100 人规模\"\n }\n ],\n \"ProviderId\": 100000071,\n \"ProviderUin\": \"700000918156\",\n \"IssueDate\": \"2024-06-26T21:02:16+08:00\",\n \"ActivationDate\": \"2024-06-26T21:02:19+08:00\",\n \"ExpirationDate\": \"2389-06-26T21:02:19+08:00\",\n \"LicenseStatus\": \"Active\",\n \"LicenseId\": \"700000918156:pkg-1glehom7:cloudapp-992nqg9u:3988\",\n \"LicenseType\": \"Standard\",\n \"LicenseLevel\": \"Master\"\n }\n ],\n \"Timestamp\": \"2025-08-25T18:36:09+08:00\"\n }\n}\n```",
|
5
|
+
"input": "DescribeLicenseRequest",
|
6
|
+
"name": "获取license信息",
|
7
|
+
"output": "DescribeLicenseResponse",
|
8
|
+
"status": "online"
|
9
|
+
},
|
3
10
|
"VerifyLicense": {
|
4
11
|
"document": "从软件进程读取 LICENSE。",
|
5
12
|
"input": "VerifyLicenseRequest",
|
@@ -15,6 +22,67 @@
|
|
15
22
|
"serviceShortName": "cloudapp"
|
16
23
|
},
|
17
24
|
"objects": {
|
25
|
+
"DescribeLicenseRequest": {
|
26
|
+
"document": "DescribeLicense请求参数结构体",
|
27
|
+
"members": [
|
28
|
+
{
|
29
|
+
"disabled": false,
|
30
|
+
"document": "可选过滤器",
|
31
|
+
"example": "无",
|
32
|
+
"member": "Filter",
|
33
|
+
"name": "Filters",
|
34
|
+
"required": false,
|
35
|
+
"type": "list"
|
36
|
+
}
|
37
|
+
],
|
38
|
+
"type": "object"
|
39
|
+
},
|
40
|
+
"DescribeLicenseResponse": {
|
41
|
+
"document": "DescribeLicense返回参数结构体",
|
42
|
+
"members": [
|
43
|
+
{
|
44
|
+
"disabled": false,
|
45
|
+
"document": "针对上面raw的签名",
|
46
|
+
"example": "eyJhbGciOi",
|
47
|
+
"member": "string",
|
48
|
+
"name": "Token",
|
49
|
+
"output_required": true,
|
50
|
+
"type": "string",
|
51
|
+
"value_allowed_null": false
|
52
|
+
},
|
53
|
+
{
|
54
|
+
"document": "唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。",
|
55
|
+
"member": "string",
|
56
|
+
"name": "RequestId",
|
57
|
+
"type": "string"
|
58
|
+
}
|
59
|
+
],
|
60
|
+
"type": "object"
|
61
|
+
},
|
62
|
+
"Filter": {
|
63
|
+
"document": "描述键值对过滤器,用于条件过滤查询。例如过滤 ID、名称、状态等\n\n- 若存在多个 Filter 时,Filter间的关系为逻辑与(AND)关系。\n- 若同一个 Filter 存在多个 Values,同一 Filter 下 Values 间的关系为逻辑或(OR)关系。",
|
64
|
+
"members": [
|
65
|
+
{
|
66
|
+
"disabled": false,
|
67
|
+
"document": "需要过滤的字段",
|
68
|
+
"example": "无",
|
69
|
+
"member": "string",
|
70
|
+
"name": "Name",
|
71
|
+
"required": true,
|
72
|
+
"type": "string"
|
73
|
+
},
|
74
|
+
{
|
75
|
+
"disabled": false,
|
76
|
+
"document": "字段的过滤值",
|
77
|
+
"example": "无",
|
78
|
+
"member": "string",
|
79
|
+
"name": "Values",
|
80
|
+
"required": true,
|
81
|
+
"type": "list"
|
82
|
+
}
|
83
|
+
],
|
84
|
+
"usage": "in"
|
85
|
+
},
|
18
86
|
"License": {
|
19
87
|
"document": "表示应用实例的软件授权,包含颁发信息、激活信息等内容。",
|
20
88
|
"members": [
|
@@ -1,5 +1,19 @@
|
|
1
1
|
{
|
2
2
|
"actions": {
|
3
|
+
"DescribeLicense": [
|
4
|
+
{
|
5
|
+
"document": "云应用准备更新 LICENCE 校验的接口",
|
6
|
+
"input": "POST / HTTP/1.1\nHost: cloudapp.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: DescribeLicense\n<公共请求参数>\n\n{}",
|
7
|
+
"output": "{\n \"Response\": {\n \"Token\": \"eyJhbGciOi\",\n \"RequestId\": \"2aab88d8-b5bd-42ea-92ee-f8df1228e278\"\n }\n}",
|
8
|
+
"title": "云应用许可校验接口"
|
9
|
+
},
|
10
|
+
{
|
11
|
+
"document": "云应用准备更新 LICENCE 校验的接口带增购信息",
|
12
|
+
"input": "POST / HTTP/1.1\nHost: cloudapp.tencentcloudapi.com\nContent-Type: application/json\nX-TC-Action: DescribeLicense\n<公共请求参数>\n\n{\n \"Filters\": [\n {\n \"Name\": \"QueryType\",\n \"Values\": [\n \"IncludeAddition\"\n ]\n }\n ]\n}",
|
13
|
+
"output": "{\n \"Response\": {\n \"Token\": \"eyJhbGciOi\",\n \"RequestId\": \"f3891f61-7c21-4223-9b5b-33a3e7ca3095\"\n }\n}",
|
14
|
+
"title": "云应用许可校验接口 带增购信息"
|
15
|
+
}
|
16
|
+
],
|
3
17
|
"VerifyLicense": [
|
4
18
|
{
|
5
19
|
"document": "软件进程对接 LICENSE 后,通过运行时角色申请临时密钥来调用,获取对应的 LICENSE 信息。\n\n获取到 LICENSE 后,请注意校验 LicenseStatus 是否有效,无效时软件可根据策略拒绝服务或者提供降级服务。同时,LICENSE 包含用户购买的规格信息,软件可根据规格来做运行的约束。\n\n对接 LICENSE 的详细方案,请参考文档:\n* [对接 LICENSE](https://cloud.tencent.com/document/product/1689/109428)\n* [通过运行时角色调用云 API](https://cloud.tencent.com/document/product/1689/109427)",
|