tencentcloud-sdk-python-apm 3.1.181__tar.gz → 3.1.188__tar.gz

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.
Files changed (17) hide show
  1. {tencentcloud_sdk_python_apm-3.1.181 → tencentcloud_sdk_python_apm-3.1.188}/PKG-INFO +2 -2
  2. {tencentcloud_sdk_python_apm-3.1.181 → tencentcloud_sdk_python_apm-3.1.188}/setup.py +1 -1
  3. {tencentcloud_sdk_python_apm-3.1.181 → tencentcloud_sdk_python_apm-3.1.188}/tencentcloud/__init__.py +1 -1
  4. {tencentcloud_sdk_python_apm-3.1.181 → tencentcloud_sdk_python_apm-3.1.188}/tencentcloud/apm/v20210622/apm_client.py +23 -0
  5. {tencentcloud_sdk_python_apm-3.1.181 → tencentcloud_sdk_python_apm-3.1.188}/tencentcloud/apm/v20210622/apm_client_async.py +18 -0
  6. {tencentcloud_sdk_python_apm-3.1.181 → tencentcloud_sdk_python_apm-3.1.188}/tencentcloud/apm/v20210622/errorcodes.py +24 -0
  7. {tencentcloud_sdk_python_apm-3.1.181 → tencentcloud_sdk_python_apm-3.1.188}/tencentcloud/apm/v20210622/models.py +829 -22
  8. {tencentcloud_sdk_python_apm-3.1.181 → tencentcloud_sdk_python_apm-3.1.188}/tencentcloud_sdk_python_apm.egg-info/PKG-INFO +2 -2
  9. tencentcloud_sdk_python_apm-3.1.188/tencentcloud_sdk_python_apm.egg-info/requires.txt +1 -0
  10. tencentcloud_sdk_python_apm-3.1.181/tencentcloud_sdk_python_apm.egg-info/requires.txt +0 -1
  11. {tencentcloud_sdk_python_apm-3.1.181 → tencentcloud_sdk_python_apm-3.1.188}/README.rst +0 -0
  12. {tencentcloud_sdk_python_apm-3.1.181 → tencentcloud_sdk_python_apm-3.1.188}/setup.cfg +0 -0
  13. {tencentcloud_sdk_python_apm-3.1.181 → tencentcloud_sdk_python_apm-3.1.188}/tencentcloud/apm/__init__.py +0 -0
  14. {tencentcloud_sdk_python_apm-3.1.181 → tencentcloud_sdk_python_apm-3.1.188}/tencentcloud/apm/v20210622/__init__.py +0 -0
  15. {tencentcloud_sdk_python_apm-3.1.181 → tencentcloud_sdk_python_apm-3.1.188}/tencentcloud_sdk_python_apm.egg-info/SOURCES.txt +0 -0
  16. {tencentcloud_sdk_python_apm-3.1.181 → tencentcloud_sdk_python_apm-3.1.188}/tencentcloud_sdk_python_apm.egg-info/dependency_links.txt +0 -0
  17. {tencentcloud_sdk_python_apm-3.1.181 → tencentcloud_sdk_python_apm-3.1.188}/tencentcloud_sdk_python_apm.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tencentcloud-sdk-python-apm
3
- Version: 3.1.181
3
+ Version: 3.1.188
4
4
  Summary: Tencent Cloud Apm SDK for Python
5
5
  Home-page: https://github.com/TencentCloud/tencentcloud-sdk-python
6
6
  Author: Tencent Cloud
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 2.7
15
15
  Classifier: Programming Language :: Python :: 3
16
16
  Classifier: Programming Language :: Python :: 3.6
17
17
  Classifier: Programming Language :: Python :: 3.7
18
- Requires-Dist: tencentcloud-sdk-python-common<4.0.0,>=3.1.181
18
+ Requires-Dist: tencentcloud-sdk-python-common<4.0.0,>=3.1.188
19
19
 
20
20
  ============================
21
21
  Tencent Cloud SDK for Python
@@ -8,7 +8,7 @@ ROOT = os.path.dirname(__file__)
8
8
 
9
9
  setup(
10
10
  name='tencentcloud-sdk-python-apm',
11
- install_requires=["tencentcloud-sdk-python-common>=3.1.181,<4.0.0"],
11
+ install_requires=["tencentcloud-sdk-python-common>=3.1.188,<4.0.0"],
12
12
 
13
13
  version=tencentcloud.__version__,
14
14
  description='Tencent Cloud Apm SDK for Python',
@@ -14,4 +14,4 @@
14
14
  # limitations under the License.
15
15
 
16
16
 
17
- __version__ = '3.1.181'
17
+ __version__ = '3.1.188'
@@ -599,6 +599,29 @@ class ApmClient(AbstractClient):
599
599
  raise TencentCloudSDKException(type(e).__name__, str(e))
600
600
 
601
601
 
602
+ def DescribeSpanTreeByID(self, request):
603
+ r"""查询trace详情接口信息
604
+
605
+ :param request: Request instance for DescribeSpanTreeByID.
606
+ :type request: :class:`tencentcloud.apm.v20210622.models.DescribeSpanTreeByIDRequest`
607
+ :rtype: :class:`tencentcloud.apm.v20210622.models.DescribeSpanTreeByIDResponse`
608
+
609
+ """
610
+ try:
611
+ params = request._serialize()
612
+ headers = request.headers
613
+ body = self.call("DescribeSpanTreeByID", params, headers=headers)
614
+ response = json.loads(body)
615
+ model = models.DescribeSpanTreeByIDResponse()
616
+ model._deserialize(response["Response"])
617
+ return model
618
+ except Exception as e:
619
+ if isinstance(e, TencentCloudSDKException):
620
+ raise
621
+ else:
622
+ raise TencentCloudSDKException(type(e).__name__, str(e))
623
+
624
+
602
625
  def DescribeTagValues(self, request):
603
626
  r"""根据维度名和过滤条件,查询维度数据.
604
627
 
@@ -478,6 +478,24 @@ class ApmClient(AbstractClient):
478
478
 
479
479
  return await self.call_and_deserialize(**kwargs)
480
480
 
481
+ async def DescribeSpanTreeByID(
482
+ self,
483
+ request: models.DescribeSpanTreeByIDRequest,
484
+ opts: Dict = None,
485
+ ) -> models.DescribeSpanTreeByIDResponse:
486
+ """
487
+ 查询trace详情接口信息
488
+ """
489
+
490
+ kwargs = {}
491
+ kwargs["action"] = "DescribeSpanTreeByID"
492
+ kwargs["params"] = request._serialize()
493
+ kwargs["resp_cls"] = models.DescribeSpanTreeByIDResponse
494
+ kwargs["headers"] = request.headers
495
+ kwargs["opts"] = opts or {}
496
+
497
+ return await self.call_and_deserialize(**kwargs)
498
+
481
499
  async def DescribeTagValues(
482
500
  self,
483
501
  request: models.DescribeTagValuesRequest,
@@ -101,6 +101,9 @@ FAILEDOPERATION_INVALIDOPERATIONTYPE = 'FailedOperation.InvalidOperationType'
101
101
  # 不合法入参
102
102
  FAILEDOPERATION_INVALIDPARAM = 'FailedOperation.InvalidParam'
103
103
 
104
+ # 查询起始时间应小于当前时间。
105
+ FAILEDOPERATION_INVALIDQUERYTIMEINTERVAL = 'FailedOperation.InvalidQueryTimeInterval'
106
+
104
107
  # 非法的正则表达式。
105
108
  FAILEDOPERATION_INVALIDREGEX = 'FailedOperation.InvalidRegex'
106
109
 
@@ -116,6 +119,9 @@ FAILEDOPERATION_INVALIDTAGFIELD = 'FailedOperation.InvalidTagField'
116
119
  # 不合法token
117
120
  FAILEDOPERATION_INVALIDTOKEN = 'FailedOperation.InvalidToken'
118
121
 
122
+ # 查询结果为空。
123
+ FAILEDOPERATION_ITEMNOTFOUND = 'FailedOperation.ItemNotFound'
124
+
119
125
  # 查询指标类数据查询条件缺少过滤参数。
120
126
  FAILEDOPERATION_METRICFILTERSLACKPARAMS = 'FailedOperation.MetricFiltersLackParams'
121
127
 
@@ -149,9 +155,15 @@ FAILEDOPERATION_PROMRULENAMECONFLICT = 'FailedOperation.PromRuleNameConflict'
149
155
  # Prometheus指标匹配规则请求有误
150
156
  FAILEDOPERATION_PROMRULEREQUESTNOTVALIDERROR = 'FailedOperation.PromRuleRequestNotValidError'
151
157
 
158
+ # 查询起始时间应小于终止时间。
159
+ FAILEDOPERATION_QUERYTIMEINTERVALCONFLICT = 'FailedOperation.QueryTimeIntervalConflict'
160
+
152
161
  # 查询时间区间不支持。
153
162
  FAILEDOPERATION_QUERYTIMEINTERVALISNOTSUPPORTED = 'FailedOperation.QueryTimeIntervalIsNotSupported'
154
163
 
164
+ # 当前查询trace不存在。
165
+ FAILEDOPERATION_QUERYTRACEISEMPTY = 'FailedOperation.QueryTraceIsEmpty'
166
+
155
167
  # 不支持该地域。
156
168
  FAILEDOPERATION_REGIONNOTSUPPORT = 'FailedOperation.RegionNotSupport'
157
169
 
@@ -182,6 +194,12 @@ FAILEDOPERATION_SERVICENOTFOUND = 'FailedOperation.ServiceNotFound'
182
194
  # serviceId 与 appId 不匹配
183
195
  FAILEDOPERATION_SERVICENOTMATCHAPPIDERR = 'FailedOperation.ServiceNotMatchAppIdErr'
184
196
 
197
+ # 当前trace生成时间较短,可能会存在链路不全的情况。
198
+ FAILEDOPERATION_SHORTQUERYTIME = 'FailedOperation.ShortQueryTime'
199
+
200
+ # 超时。
201
+ FAILEDOPERATION_TIMEOUT = 'FailedOperation.Timeout'
202
+
185
203
  # topic不可用
186
204
  FAILEDOPERATION_TOPICNOTAVAILABLEERROR = 'FailedOperation.TopicNotAvailableError'
187
205
 
@@ -217,3 +235,9 @@ INVALIDPARAMETER_QUERYTIMEINTERVALISNOTSUPPORTED = 'InvalidParameter.QueryTimeIn
217
235
 
218
236
  # 视图名称不存在或非法。
219
237
  INVALIDPARAMETER_VIEWNAMENOTEXISTORILLEGAL = 'InvalidParameter.ViewNameNotExistOrIllegal'
238
+
239
+ # 缺少参数错误。
240
+ MISSINGPARAMETER = 'MissingParameter'
241
+
242
+ # 未知参数错误。
243
+ UNKNOWNPARAMETER = 'UnknownParameter'
@@ -4135,6 +4135,67 @@ class CVMMeta(AbstractModel):
4135
4135
 
4136
4136
 
4137
4137
 
4138
+ class ChartData(AbstractModel):
4139
+ r"""接口参数列表
4140
+
4141
+ """
4142
+
4143
+ def __init__(self):
4144
+ r"""
4145
+ :param _Series: <p>接口参数id列表</p>
4146
+ :type Series: list of Series
4147
+ :param _YAxis: <p>接口参数列表</p>
4148
+ :type YAxis: list of YAxis
4149
+ """
4150
+ self._Series = None
4151
+ self._YAxis = None
4152
+
4153
+ @property
4154
+ def Series(self):
4155
+ r"""<p>接口参数id列表</p>
4156
+ :rtype: list of Series
4157
+ """
4158
+ return self._Series
4159
+
4160
+ @Series.setter
4161
+ def Series(self, Series):
4162
+ self._Series = Series
4163
+
4164
+ @property
4165
+ def YAxis(self):
4166
+ r"""<p>接口参数列表</p>
4167
+ :rtype: list of YAxis
4168
+ """
4169
+ return self._YAxis
4170
+
4171
+ @YAxis.setter
4172
+ def YAxis(self, YAxis):
4173
+ self._YAxis = YAxis
4174
+
4175
+
4176
+ def _deserialize(self, params):
4177
+ if params.get("Series") is not None:
4178
+ self._Series = []
4179
+ for item in params.get("Series"):
4180
+ obj = Series()
4181
+ obj._deserialize(item)
4182
+ self._Series.append(obj)
4183
+ if params.get("YAxis") is not None:
4184
+ self._YAxis = []
4185
+ for item in params.get("YAxis"):
4186
+ obj = YAxis()
4187
+ obj._deserialize(item)
4188
+ self._YAxis.append(obj)
4189
+ memeber_set = set(params.keys())
4190
+ for name, value in vars(self).items():
4191
+ property_name = name[1:]
4192
+ if property_name in memeber_set:
4193
+ memeber_set.remove(property_name)
4194
+ if len(memeber_set) > 0:
4195
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
4196
+
4197
+
4198
+
4138
4199
  class ComponentTopologyView(AbstractModel):
4139
4200
  r"""包含了视图中节点组件类型的数量
4140
4201
 
@@ -8515,6 +8576,212 @@ class DescribeServiceOverviewResponse(AbstractModel):
8515
8576
  self._RequestId = params.get("RequestId")
8516
8577
 
8517
8578
 
8579
+ class DescribeSpanTreeByIDRequest(AbstractModel):
8580
+ r"""DescribeSpanTreeByID请求参数结构体
8581
+
8582
+ """
8583
+
8584
+ def __init__(self):
8585
+ r"""
8586
+ :param _InstanceId: <p>业务系统 ID</p>
8587
+ :type InstanceId: str
8588
+ :param _Filters: <p>TraceID</p>
8589
+ :type Filters: list of Filter
8590
+ :param _StartTime: <p>Span查询开始时间戳(单位:秒)</p>
8591
+ :type StartTime: int
8592
+ :param _EndTime: <p>Span查询结束时间戳(单位:秒)</p>
8593
+ :type EndTime: int
8594
+ :param _IsFold: <p>代表请求的是否为完整瀑布图</p>
8595
+ :type IsFold: bool
8596
+ :param _EntrySpanSelected: <p>开启关键调用视图</p>
8597
+ :type EntrySpanSelected: bool
8598
+ :param _FocusSpanId: <p>关注的SpanId</p>
8599
+ :type FocusSpanId: str
8600
+ :param _FilterViewTagKeyList: <p>过滤视图的Tag列表</p>
8601
+ :type FilterViewTagKeyList: list of str
8602
+ :param _EnableResourceLink: <p>是否开启云资源关联</p>
8603
+ :type EnableResourceLink: bool
8604
+ """
8605
+ self._InstanceId = None
8606
+ self._Filters = None
8607
+ self._StartTime = None
8608
+ self._EndTime = None
8609
+ self._IsFold = None
8610
+ self._EntrySpanSelected = None
8611
+ self._FocusSpanId = None
8612
+ self._FilterViewTagKeyList = None
8613
+ self._EnableResourceLink = None
8614
+
8615
+ @property
8616
+ def InstanceId(self):
8617
+ r"""<p>业务系统 ID</p>
8618
+ :rtype: str
8619
+ """
8620
+ return self._InstanceId
8621
+
8622
+ @InstanceId.setter
8623
+ def InstanceId(self, InstanceId):
8624
+ self._InstanceId = InstanceId
8625
+
8626
+ @property
8627
+ def Filters(self):
8628
+ r"""<p>TraceID</p>
8629
+ :rtype: list of Filter
8630
+ """
8631
+ return self._Filters
8632
+
8633
+ @Filters.setter
8634
+ def Filters(self, Filters):
8635
+ self._Filters = Filters
8636
+
8637
+ @property
8638
+ def StartTime(self):
8639
+ r"""<p>Span查询开始时间戳(单位:秒)</p>
8640
+ :rtype: int
8641
+ """
8642
+ return self._StartTime
8643
+
8644
+ @StartTime.setter
8645
+ def StartTime(self, StartTime):
8646
+ self._StartTime = StartTime
8647
+
8648
+ @property
8649
+ def EndTime(self):
8650
+ r"""<p>Span查询结束时间戳(单位:秒)</p>
8651
+ :rtype: int
8652
+ """
8653
+ return self._EndTime
8654
+
8655
+ @EndTime.setter
8656
+ def EndTime(self, EndTime):
8657
+ self._EndTime = EndTime
8658
+
8659
+ @property
8660
+ def IsFold(self):
8661
+ r"""<p>代表请求的是否为完整瀑布图</p>
8662
+ :rtype: bool
8663
+ """
8664
+ return self._IsFold
8665
+
8666
+ @IsFold.setter
8667
+ def IsFold(self, IsFold):
8668
+ self._IsFold = IsFold
8669
+
8670
+ @property
8671
+ def EntrySpanSelected(self):
8672
+ r"""<p>开启关键调用视图</p>
8673
+ :rtype: bool
8674
+ """
8675
+ return self._EntrySpanSelected
8676
+
8677
+ @EntrySpanSelected.setter
8678
+ def EntrySpanSelected(self, EntrySpanSelected):
8679
+ self._EntrySpanSelected = EntrySpanSelected
8680
+
8681
+ @property
8682
+ def FocusSpanId(self):
8683
+ r"""<p>关注的SpanId</p>
8684
+ :rtype: str
8685
+ """
8686
+ return self._FocusSpanId
8687
+
8688
+ @FocusSpanId.setter
8689
+ def FocusSpanId(self, FocusSpanId):
8690
+ self._FocusSpanId = FocusSpanId
8691
+
8692
+ @property
8693
+ def FilterViewTagKeyList(self):
8694
+ r"""<p>过滤视图的Tag列表</p>
8695
+ :rtype: list of str
8696
+ """
8697
+ return self._FilterViewTagKeyList
8698
+
8699
+ @FilterViewTagKeyList.setter
8700
+ def FilterViewTagKeyList(self, FilterViewTagKeyList):
8701
+ self._FilterViewTagKeyList = FilterViewTagKeyList
8702
+
8703
+ @property
8704
+ def EnableResourceLink(self):
8705
+ r"""<p>是否开启云资源关联</p>
8706
+ :rtype: bool
8707
+ """
8708
+ return self._EnableResourceLink
8709
+
8710
+ @EnableResourceLink.setter
8711
+ def EnableResourceLink(self, EnableResourceLink):
8712
+ self._EnableResourceLink = EnableResourceLink
8713
+
8714
+
8715
+ def _deserialize(self, params):
8716
+ self._InstanceId = params.get("InstanceId")
8717
+ if params.get("Filters") is not None:
8718
+ self._Filters = []
8719
+ for item in params.get("Filters"):
8720
+ obj = Filter()
8721
+ obj._deserialize(item)
8722
+ self._Filters.append(obj)
8723
+ self._StartTime = params.get("StartTime")
8724
+ self._EndTime = params.get("EndTime")
8725
+ self._IsFold = params.get("IsFold")
8726
+ self._EntrySpanSelected = params.get("EntrySpanSelected")
8727
+ self._FocusSpanId = params.get("FocusSpanId")
8728
+ self._FilterViewTagKeyList = params.get("FilterViewTagKeyList")
8729
+ self._EnableResourceLink = params.get("EnableResourceLink")
8730
+ memeber_set = set(params.keys())
8731
+ for name, value in vars(self).items():
8732
+ property_name = name[1:]
8733
+ if property_name in memeber_set:
8734
+ memeber_set.remove(property_name)
8735
+ if len(memeber_set) > 0:
8736
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
8737
+
8738
+
8739
+
8740
+ class DescribeSpanTreeByIDResponse(AbstractModel):
8741
+ r"""DescribeSpanTreeByID返回参数结构体
8742
+
8743
+ """
8744
+
8745
+ def __init__(self):
8746
+ r"""
8747
+ :param _SpanTreeView: <p>树形图</p>
8748
+ :type SpanTreeView: :class:`tencentcloud.apm.v20210622.models.SpanTreeView`
8749
+ :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
8750
+ :type RequestId: str
8751
+ """
8752
+ self._SpanTreeView = None
8753
+ self._RequestId = None
8754
+
8755
+ @property
8756
+ def SpanTreeView(self):
8757
+ r"""<p>树形图</p>
8758
+ :rtype: :class:`tencentcloud.apm.v20210622.models.SpanTreeView`
8759
+ """
8760
+ return self._SpanTreeView
8761
+
8762
+ @SpanTreeView.setter
8763
+ def SpanTreeView(self, SpanTreeView):
8764
+ self._SpanTreeView = SpanTreeView
8765
+
8766
+ @property
8767
+ def RequestId(self):
8768
+ r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
8769
+ :rtype: str
8770
+ """
8771
+ return self._RequestId
8772
+
8773
+ @RequestId.setter
8774
+ def RequestId(self, RequestId):
8775
+ self._RequestId = RequestId
8776
+
8777
+
8778
+ def _deserialize(self, params):
8779
+ if params.get("SpanTreeView") is not None:
8780
+ self._SpanTreeView = SpanTreeView()
8781
+ self._SpanTreeView._deserialize(params.get("SpanTreeView"))
8782
+ self._RequestId = params.get("RequestId")
8783
+
8784
+
8518
8785
  class DescribeTagValuesRequest(AbstractModel):
8519
8786
  r"""DescribeTagValues请求参数结构体
8520
8787
 
@@ -9124,6 +9391,57 @@ class DescribeTopologyNewResponse(AbstractModel):
9124
9391
  self._RequestId = params.get("RequestId")
9125
9392
 
9126
9393
 
9394
+ class ErrorSpan(AbstractModel):
9395
+ r"""错误Span的数据项
9396
+
9397
+ """
9398
+
9399
+ def __init__(self):
9400
+ r"""
9401
+ :param _SpanID: <p>异常SpanId</p>
9402
+ :type SpanID: str
9403
+ :param _ErrorMessage: <p>异常信息</p>
9404
+ :type ErrorMessage: str
9405
+ """
9406
+ self._SpanID = None
9407
+ self._ErrorMessage = None
9408
+
9409
+ @property
9410
+ def SpanID(self):
9411
+ r"""<p>异常SpanId</p>
9412
+ :rtype: str
9413
+ """
9414
+ return self._SpanID
9415
+
9416
+ @SpanID.setter
9417
+ def SpanID(self, SpanID):
9418
+ self._SpanID = SpanID
9419
+
9420
+ @property
9421
+ def ErrorMessage(self):
9422
+ r"""<p>异常信息</p>
9423
+ :rtype: str
9424
+ """
9425
+ return self._ErrorMessage
9426
+
9427
+ @ErrorMessage.setter
9428
+ def ErrorMessage(self, ErrorMessage):
9429
+ self._ErrorMessage = ErrorMessage
9430
+
9431
+
9432
+ def _deserialize(self, params):
9433
+ self._SpanID = params.get("SpanID")
9434
+ self._ErrorMessage = params.get("ErrorMessage")
9435
+ memeber_set = set(params.keys())
9436
+ for name, value in vars(self).items():
9437
+ property_name = name[1:]
9438
+ if property_name in memeber_set:
9439
+ memeber_set.remove(property_name)
9440
+ if len(memeber_set) > 0:
9441
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
9442
+
9443
+
9444
+
9127
9445
  class Filter(AbstractModel):
9128
9446
  r"""查询过滤参数
9129
9447
 
@@ -12226,11 +12544,11 @@ class QueryMetricItem(AbstractModel):
12226
12544
 
12227
12545
  def __init__(self):
12228
12546
  r"""
12229
- :param _MetricName: 指标名
12547
+ :param _MetricName: <p>指标名</p>
12230
12548
  :type MetricName: str
12231
- :param _Compares: 同比,现支持 CompareByYesterday (与昨天相比)和CompareByLastWeek (与上周相比)
12549
+ :param _Compares: <p>同比,现支持 CompareByYesterday (与昨天相比)和CompareByLastWeek (与上周相比)</p>
12232
12550
  :type Compares: list of str
12233
- :param _Compare: 同比,已弃用,不建议使用
12551
+ :param _Compare: <p>同比,已弃用,不建议使用</p>
12234
12552
  :type Compare: str
12235
12553
  """
12236
12554
  self._MetricName = None
@@ -12239,7 +12557,7 @@ class QueryMetricItem(AbstractModel):
12239
12557
 
12240
12558
  @property
12241
12559
  def MetricName(self):
12242
- r"""指标名
12560
+ r"""<p>指标名</p>
12243
12561
  :rtype: str
12244
12562
  """
12245
12563
  return self._MetricName
@@ -12250,7 +12568,7 @@ class QueryMetricItem(AbstractModel):
12250
12568
 
12251
12569
  @property
12252
12570
  def Compares(self):
12253
- r"""同比,现支持 CompareByYesterday (与昨天相比)和CompareByLastWeek (与上周相比)
12571
+ r"""<p>同比,现支持 CompareByYesterday (与昨天相比)和CompareByLastWeek (与上周相比)</p>
12254
12572
  :rtype: list of str
12255
12573
  """
12256
12574
  return self._Compares
@@ -12261,7 +12579,7 @@ class QueryMetricItem(AbstractModel):
12261
12579
 
12262
12580
  @property
12263
12581
  def Compare(self):
12264
- r"""同比,已弃用,不建议使用
12582
+ r"""<p>同比,已弃用,不建议使用</p>
12265
12583
  :rtype: str
12266
12584
  """
12267
12585
  return self._Compare
@@ -12412,7 +12730,7 @@ class Selectors(AbstractModel):
12412
12730
 
12413
12731
  def __init__(self):
12414
12732
  r"""
12415
- :param _Component: 组件勾选情况
12733
+ :param _Component: <p>组件勾选情况</p>
12416
12734
  注意:此字段可能返回 null,表示取不到有效值。
12417
12735
  :type Component: list of str
12418
12736
  """
@@ -12420,7 +12738,7 @@ class Selectors(AbstractModel):
12420
12738
 
12421
12739
  @property
12422
12740
  def Component(self):
12423
- r"""组件勾选情况
12741
+ r"""<p>组件勾选情况</p>
12424
12742
  注意:此字段可能返回 null,表示取不到有效值。
12425
12743
  :rtype: list of str
12426
12744
  """
@@ -12443,6 +12761,74 @@ class Selectors(AbstractModel):
12443
12761
 
12444
12762
 
12445
12763
 
12764
+ class Series(AbstractModel):
12765
+ r"""耗时消耗时间
12766
+
12767
+ """
12768
+
12769
+ def __init__(self):
12770
+ r"""
12771
+ :param _Data: 耗时列表信息
12772
+ :type Data: list of int
12773
+ :param _Stack: 描述
12774
+ :type Stack: str
12775
+ :param _Name: 字段名
12776
+ 注意:此字段可能返回 null,表示取不到有效值。
12777
+ :type Name: str
12778
+ """
12779
+ self._Data = None
12780
+ self._Stack = None
12781
+ self._Name = None
12782
+
12783
+ @property
12784
+ def Data(self):
12785
+ r"""耗时列表信息
12786
+ :rtype: list of int
12787
+ """
12788
+ return self._Data
12789
+
12790
+ @Data.setter
12791
+ def Data(self, Data):
12792
+ self._Data = Data
12793
+
12794
+ @property
12795
+ def Stack(self):
12796
+ r"""描述
12797
+ :rtype: str
12798
+ """
12799
+ return self._Stack
12800
+
12801
+ @Stack.setter
12802
+ def Stack(self, Stack):
12803
+ self._Stack = Stack
12804
+
12805
+ @property
12806
+ def Name(self):
12807
+ r"""字段名
12808
+ 注意:此字段可能返回 null,表示取不到有效值。
12809
+ :rtype: str
12810
+ """
12811
+ return self._Name
12812
+
12813
+ @Name.setter
12814
+ def Name(self, Name):
12815
+ self._Name = Name
12816
+
12817
+
12818
+ def _deserialize(self, params):
12819
+ self._Data = params.get("Data")
12820
+ self._Stack = params.get("Stack")
12821
+ self._Name = params.get("Name")
12822
+ memeber_set = set(params.keys())
12823
+ for name, value in vars(self).items():
12824
+ property_name = name[1:]
12825
+ if property_name in memeber_set:
12826
+ memeber_set.remove(property_name)
12827
+ if len(memeber_set) > 0:
12828
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
12829
+
12830
+
12831
+
12446
12832
  class ServiceDetail(AbstractModel):
12447
12833
  r"""应用详细信息
12448
12834
 
@@ -13204,6 +13590,207 @@ class SpanTag(AbstractModel):
13204
13590
 
13205
13591
 
13206
13592
 
13593
+ class SpanTreeView(AbstractModel):
13594
+ r"""树形结构
13595
+
13596
+ """
13597
+
13598
+ def __init__(self):
13599
+ r"""
13600
+ :param _TreeData: 树结构json串
13601
+ :type TreeData: str
13602
+ :param _ChartData: 列表
13603
+ :type ChartData: :class:`tencentcloud.apm.v20210622.models.ChartData`
13604
+ :param _TraceOverview: Trace概览信息
13605
+ :type TraceOverview: :class:`tencentcloud.apm.v20210622.models.TraceOverview`
13606
+ :param _CompressedTreeData: 压缩编码后的树结构json串
13607
+ :type CompressedTreeData: str
13608
+ :param _CntExceeded: 整条链路的 span 数量是否超过限制
13609
+ :type CntExceeded: bool
13610
+ :param _QueryTimeout: 是否有内部查询超时
13611
+ :type QueryTimeout: bool
13612
+ :param _SpanTotalCnt: 链路中 span 总数量
13613
+ :type SpanTotalCnt: int
13614
+ :param _FilterViewTagValues: 过滤视图的标签值列表
13615
+ :type FilterViewTagValues: list of TagValues
13616
+ """
13617
+ self._TreeData = None
13618
+ self._ChartData = None
13619
+ self._TraceOverview = None
13620
+ self._CompressedTreeData = None
13621
+ self._CntExceeded = None
13622
+ self._QueryTimeout = None
13623
+ self._SpanTotalCnt = None
13624
+ self._FilterViewTagValues = None
13625
+
13626
+ @property
13627
+ def TreeData(self):
13628
+ r"""树结构json串
13629
+ :rtype: str
13630
+ """
13631
+ return self._TreeData
13632
+
13633
+ @TreeData.setter
13634
+ def TreeData(self, TreeData):
13635
+ self._TreeData = TreeData
13636
+
13637
+ @property
13638
+ def ChartData(self):
13639
+ r"""列表
13640
+ :rtype: :class:`tencentcloud.apm.v20210622.models.ChartData`
13641
+ """
13642
+ return self._ChartData
13643
+
13644
+ @ChartData.setter
13645
+ def ChartData(self, ChartData):
13646
+ self._ChartData = ChartData
13647
+
13648
+ @property
13649
+ def TraceOverview(self):
13650
+ r"""Trace概览信息
13651
+ :rtype: :class:`tencentcloud.apm.v20210622.models.TraceOverview`
13652
+ """
13653
+ return self._TraceOverview
13654
+
13655
+ @TraceOverview.setter
13656
+ def TraceOverview(self, TraceOverview):
13657
+ self._TraceOverview = TraceOverview
13658
+
13659
+ @property
13660
+ def CompressedTreeData(self):
13661
+ r"""压缩编码后的树结构json串
13662
+ :rtype: str
13663
+ """
13664
+ return self._CompressedTreeData
13665
+
13666
+ @CompressedTreeData.setter
13667
+ def CompressedTreeData(self, CompressedTreeData):
13668
+ self._CompressedTreeData = CompressedTreeData
13669
+
13670
+ @property
13671
+ def CntExceeded(self):
13672
+ r"""整条链路的 span 数量是否超过限制
13673
+ :rtype: bool
13674
+ """
13675
+ return self._CntExceeded
13676
+
13677
+ @CntExceeded.setter
13678
+ def CntExceeded(self, CntExceeded):
13679
+ self._CntExceeded = CntExceeded
13680
+
13681
+ @property
13682
+ def QueryTimeout(self):
13683
+ r"""是否有内部查询超时
13684
+ :rtype: bool
13685
+ """
13686
+ return self._QueryTimeout
13687
+
13688
+ @QueryTimeout.setter
13689
+ def QueryTimeout(self, QueryTimeout):
13690
+ self._QueryTimeout = QueryTimeout
13691
+
13692
+ @property
13693
+ def SpanTotalCnt(self):
13694
+ r"""链路中 span 总数量
13695
+ :rtype: int
13696
+ """
13697
+ return self._SpanTotalCnt
13698
+
13699
+ @SpanTotalCnt.setter
13700
+ def SpanTotalCnt(self, SpanTotalCnt):
13701
+ self._SpanTotalCnt = SpanTotalCnt
13702
+
13703
+ @property
13704
+ def FilterViewTagValues(self):
13705
+ r"""过滤视图的标签值列表
13706
+ :rtype: list of TagValues
13707
+ """
13708
+ return self._FilterViewTagValues
13709
+
13710
+ @FilterViewTagValues.setter
13711
+ def FilterViewTagValues(self, FilterViewTagValues):
13712
+ self._FilterViewTagValues = FilterViewTagValues
13713
+
13714
+
13715
+ def _deserialize(self, params):
13716
+ self._TreeData = params.get("TreeData")
13717
+ if params.get("ChartData") is not None:
13718
+ self._ChartData = ChartData()
13719
+ self._ChartData._deserialize(params.get("ChartData"))
13720
+ if params.get("TraceOverview") is not None:
13721
+ self._TraceOverview = TraceOverview()
13722
+ self._TraceOverview._deserialize(params.get("TraceOverview"))
13723
+ self._CompressedTreeData = params.get("CompressedTreeData")
13724
+ self._CntExceeded = params.get("CntExceeded")
13725
+ self._QueryTimeout = params.get("QueryTimeout")
13726
+ self._SpanTotalCnt = params.get("SpanTotalCnt")
13727
+ if params.get("FilterViewTagValues") is not None:
13728
+ self._FilterViewTagValues = []
13729
+ for item in params.get("FilterViewTagValues"):
13730
+ obj = TagValues()
13731
+ obj._deserialize(item)
13732
+ self._FilterViewTagValues.append(obj)
13733
+ memeber_set = set(params.keys())
13734
+ for name, value in vars(self).items():
13735
+ property_name = name[1:]
13736
+ if property_name in memeber_set:
13737
+ memeber_set.remove(property_name)
13738
+ if len(memeber_set) > 0:
13739
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
13740
+
13741
+
13742
+
13743
+ class TagValues(AbstractModel):
13744
+ r"""维度值(值为List)
13745
+
13746
+ """
13747
+
13748
+ def __init__(self):
13749
+ r"""
13750
+ :param _Key: 维度键
13751
+ :type Key: str
13752
+ :param _Values: 维度值
13753
+ :type Values: list of str
13754
+ """
13755
+ self._Key = None
13756
+ self._Values = None
13757
+
13758
+ @property
13759
+ def Key(self):
13760
+ r"""维度键
13761
+ :rtype: str
13762
+ """
13763
+ return self._Key
13764
+
13765
+ @Key.setter
13766
+ def Key(self, Key):
13767
+ self._Key = Key
13768
+
13769
+ @property
13770
+ def Values(self):
13771
+ r"""维度值
13772
+ :rtype: list of str
13773
+ """
13774
+ return self._Values
13775
+
13776
+ @Values.setter
13777
+ def Values(self, Values):
13778
+ self._Values = Values
13779
+
13780
+
13781
+ def _deserialize(self, params):
13782
+ self._Key = params.get("Key")
13783
+ self._Values = params.get("Values")
13784
+ memeber_set = set(params.keys())
13785
+ for name, value in vars(self).items():
13786
+ property_name = name[1:]
13787
+ if property_name in memeber_set:
13788
+ memeber_set.remove(property_name)
13789
+ if len(memeber_set) > 0:
13790
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
13791
+
13792
+
13793
+
13207
13794
  class TerminateApmInstanceRequest(AbstractModel):
13208
13795
  r"""TerminateApmInstance请求参数结构体
13209
13796
 
@@ -13275,19 +13862,19 @@ class TkeMeta(AbstractModel):
13275
13862
 
13276
13863
  def __init__(self):
13277
13864
  r"""
13278
- :param _Region: 地域
13865
+ :param _Region: <p>地域</p>
13279
13866
  :type Region: str
13280
- :param _ClusterID: 集群ID
13867
+ :param _ClusterID: <p>集群ID</p>
13281
13868
  :type ClusterID: str
13282
- :param _PodName: pod name
13869
+ :param _PodName: <p>pod name</p>
13283
13870
  :type PodName: str
13284
- :param _Namespace: 命名空间
13871
+ :param _Namespace: <p>命名空间</p>
13285
13872
  :type Namespace: str
13286
- :param _Deployment: 工作负载
13873
+ :param _Deployment: <p>工作负载</p>
13287
13874
  :type Deployment: str
13288
- :param _PodIP: pod ip
13875
+ :param _PodIP: <p>pod ip</p>
13289
13876
  :type PodIP: str
13290
- :param _NodeIP: node ip
13877
+ :param _NodeIP: <p>node ip</p>
13291
13878
  :type NodeIP: str
13292
13879
  """
13293
13880
  self._Region = None
@@ -13300,7 +13887,7 @@ class TkeMeta(AbstractModel):
13300
13887
 
13301
13888
  @property
13302
13889
  def Region(self):
13303
- r"""地域
13890
+ r"""<p>地域</p>
13304
13891
  :rtype: str
13305
13892
  """
13306
13893
  return self._Region
@@ -13311,7 +13898,7 @@ class TkeMeta(AbstractModel):
13311
13898
 
13312
13899
  @property
13313
13900
  def ClusterID(self):
13314
- r"""集群ID
13901
+ r"""<p>集群ID</p>
13315
13902
  :rtype: str
13316
13903
  """
13317
13904
  return self._ClusterID
@@ -13322,7 +13909,7 @@ class TkeMeta(AbstractModel):
13322
13909
 
13323
13910
  @property
13324
13911
  def PodName(self):
13325
- r"""pod name
13912
+ r"""<p>pod name</p>
13326
13913
  :rtype: str
13327
13914
  """
13328
13915
  return self._PodName
@@ -13333,7 +13920,7 @@ class TkeMeta(AbstractModel):
13333
13920
 
13334
13921
  @property
13335
13922
  def Namespace(self):
13336
- r"""命名空间
13923
+ r"""<p>命名空间</p>
13337
13924
  :rtype: str
13338
13925
  """
13339
13926
  return self._Namespace
@@ -13344,7 +13931,7 @@ class TkeMeta(AbstractModel):
13344
13931
 
13345
13932
  @property
13346
13933
  def Deployment(self):
13347
- r"""工作负载
13934
+ r"""<p>工作负载</p>
13348
13935
  :rtype: str
13349
13936
  """
13350
13937
  return self._Deployment
@@ -13355,7 +13942,7 @@ class TkeMeta(AbstractModel):
13355
13942
 
13356
13943
  @property
13357
13944
  def PodIP(self):
13358
- r"""pod ip
13945
+ r"""<p>pod ip</p>
13359
13946
  :rtype: str
13360
13947
  """
13361
13948
  return self._PodIP
@@ -13366,7 +13953,7 @@ class TkeMeta(AbstractModel):
13366
13953
 
13367
13954
  @property
13368
13955
  def NodeIP(self):
13369
- r"""node ip
13956
+ r"""<p>node ip</p>
13370
13957
  :rtype: str
13371
13958
  """
13372
13959
  return self._NodeIP
@@ -14105,4 +14692,224 @@ class TopologyNodeStats(AbstractModel):
14105
14692
  memeber_set.remove(property_name)
14106
14693
  if len(memeber_set) > 0:
14107
14694
  warnings.warn("%s fileds are useless." % ",".join(memeber_set))
14695
+
14696
+
14697
+
14698
+ class TraceOverview(AbstractModel):
14699
+ r"""Trace概览查询
14700
+
14701
+ """
14702
+
14703
+ def __init__(self):
14704
+ r"""
14705
+ :param _Status: <p>traceID调用状态</p>
14706
+ 注意:此字段可能返回 null,表示取不到有效值。
14707
+ :type Status: int
14708
+ :param _TraceID: <p>TraceId查询</p>
14709
+ :type TraceID: str
14710
+ :param _ErrorMsg: <p>错误信息</p>
14711
+ 注意:此字段可能返回 null,表示取不到有效值。
14712
+ :type ErrorMsg: str
14713
+ :param _ServiceName: <p>服务名</p>
14714
+ 注意:此字段可能返回 null,表示取不到有效值。
14715
+ :type ServiceName: str
14716
+ :param _Duration: <p>耗时</p>
14717
+ :type Duration: int
14718
+ :param _Operation: <p>接口名</p>
14719
+ :type Operation: str
14720
+ :param _StartTime: <p>开始时间(微秒)</p>
14721
+ :type StartTime: int
14722
+ :param _ApplicationCount: <p>应用数</p>
14723
+ :type ApplicationCount: int
14724
+ :param _ErrorSpans: <p>异常Span列表</p>
14725
+ 注意:此字段可能返回 null,表示取不到有效值。
14726
+ :type ErrorSpans: list of ErrorSpan
14727
+ """
14728
+ self._Status = None
14729
+ self._TraceID = None
14730
+ self._ErrorMsg = None
14731
+ self._ServiceName = None
14732
+ self._Duration = None
14733
+ self._Operation = None
14734
+ self._StartTime = None
14735
+ self._ApplicationCount = None
14736
+ self._ErrorSpans = None
14737
+
14738
+ @property
14739
+ def Status(self):
14740
+ r"""<p>traceID调用状态</p>
14741
+ 注意:此字段可能返回 null,表示取不到有效值。
14742
+ :rtype: int
14743
+ """
14744
+ return self._Status
14745
+
14746
+ @Status.setter
14747
+ def Status(self, Status):
14748
+ self._Status = Status
14749
+
14750
+ @property
14751
+ def TraceID(self):
14752
+ r"""<p>TraceId查询</p>
14753
+ :rtype: str
14754
+ """
14755
+ return self._TraceID
14756
+
14757
+ @TraceID.setter
14758
+ def TraceID(self, TraceID):
14759
+ self._TraceID = TraceID
14760
+
14761
+ @property
14762
+ def ErrorMsg(self):
14763
+ r"""<p>错误信息</p>
14764
+ 注意:此字段可能返回 null,表示取不到有效值。
14765
+ :rtype: str
14766
+ """
14767
+ return self._ErrorMsg
14768
+
14769
+ @ErrorMsg.setter
14770
+ def ErrorMsg(self, ErrorMsg):
14771
+ self._ErrorMsg = ErrorMsg
14772
+
14773
+ @property
14774
+ def ServiceName(self):
14775
+ r"""<p>服务名</p>
14776
+ 注意:此字段可能返回 null,表示取不到有效值。
14777
+ :rtype: str
14778
+ """
14779
+ return self._ServiceName
14780
+
14781
+ @ServiceName.setter
14782
+ def ServiceName(self, ServiceName):
14783
+ self._ServiceName = ServiceName
14784
+
14785
+ @property
14786
+ def Duration(self):
14787
+ r"""<p>耗时</p>
14788
+ :rtype: int
14789
+ """
14790
+ return self._Duration
14791
+
14792
+ @Duration.setter
14793
+ def Duration(self, Duration):
14794
+ self._Duration = Duration
14795
+
14796
+ @property
14797
+ def Operation(self):
14798
+ r"""<p>接口名</p>
14799
+ :rtype: str
14800
+ """
14801
+ return self._Operation
14802
+
14803
+ @Operation.setter
14804
+ def Operation(self, Operation):
14805
+ self._Operation = Operation
14806
+
14807
+ @property
14808
+ def StartTime(self):
14809
+ r"""<p>开始时间(微秒)</p>
14810
+ :rtype: int
14811
+ """
14812
+ return self._StartTime
14813
+
14814
+ @StartTime.setter
14815
+ def StartTime(self, StartTime):
14816
+ self._StartTime = StartTime
14817
+
14818
+ @property
14819
+ def ApplicationCount(self):
14820
+ r"""<p>应用数</p>
14821
+ :rtype: int
14822
+ """
14823
+ return self._ApplicationCount
14824
+
14825
+ @ApplicationCount.setter
14826
+ def ApplicationCount(self, ApplicationCount):
14827
+ self._ApplicationCount = ApplicationCount
14828
+
14829
+ @property
14830
+ def ErrorSpans(self):
14831
+ r"""<p>异常Span列表</p>
14832
+ 注意:此字段可能返回 null,表示取不到有效值。
14833
+ :rtype: list of ErrorSpan
14834
+ """
14835
+ return self._ErrorSpans
14836
+
14837
+ @ErrorSpans.setter
14838
+ def ErrorSpans(self, ErrorSpans):
14839
+ self._ErrorSpans = ErrorSpans
14840
+
14841
+
14842
+ def _deserialize(self, params):
14843
+ self._Status = params.get("Status")
14844
+ self._TraceID = params.get("TraceID")
14845
+ self._ErrorMsg = params.get("ErrorMsg")
14846
+ self._ServiceName = params.get("ServiceName")
14847
+ self._Duration = params.get("Duration")
14848
+ self._Operation = params.get("Operation")
14849
+ self._StartTime = params.get("StartTime")
14850
+ self._ApplicationCount = params.get("ApplicationCount")
14851
+ if params.get("ErrorSpans") is not None:
14852
+ self._ErrorSpans = []
14853
+ for item in params.get("ErrorSpans"):
14854
+ obj = ErrorSpan()
14855
+ obj._deserialize(item)
14856
+ self._ErrorSpans.append(obj)
14857
+ memeber_set = set(params.keys())
14858
+ for name, value in vars(self).items():
14859
+ property_name = name[1:]
14860
+ if property_name in memeber_set:
14861
+ memeber_set.remove(property_name)
14862
+ if len(memeber_set) > 0:
14863
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
14864
+
14865
+
14866
+
14867
+ class YAxis(AbstractModel):
14868
+ r"""接口列表
14869
+
14870
+ """
14871
+
14872
+ def __init__(self):
14873
+ r"""
14874
+ :param _Keys: <p>接口列表</p>
14875
+ :type Keys: list of str
14876
+ :param _Data: <p>接口列表</p>
14877
+ :type Data: list of str
14878
+ """
14879
+ self._Keys = None
14880
+ self._Data = None
14881
+
14882
+ @property
14883
+ def Keys(self):
14884
+ r"""<p>接口列表</p>
14885
+ :rtype: list of str
14886
+ """
14887
+ return self._Keys
14888
+
14889
+ @Keys.setter
14890
+ def Keys(self, Keys):
14891
+ self._Keys = Keys
14892
+
14893
+ @property
14894
+ def Data(self):
14895
+ r"""<p>接口列表</p>
14896
+ :rtype: list of str
14897
+ """
14898
+ return self._Data
14899
+
14900
+ @Data.setter
14901
+ def Data(self, Data):
14902
+ self._Data = Data
14903
+
14904
+
14905
+ def _deserialize(self, params):
14906
+ self._Keys = params.get("Keys")
14907
+ self._Data = params.get("Data")
14908
+ memeber_set = set(params.keys())
14909
+ for name, value in vars(self).items():
14910
+ property_name = name[1:]
14911
+ if property_name in memeber_set:
14912
+ memeber_set.remove(property_name)
14913
+ if len(memeber_set) > 0:
14914
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
14108
14915
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tencentcloud-sdk-python-apm
3
- Version: 3.1.181
3
+ Version: 3.1.188
4
4
  Summary: Tencent Cloud Apm SDK for Python
5
5
  Home-page: https://github.com/TencentCloud/tencentcloud-sdk-python
6
6
  Author: Tencent Cloud
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 2.7
15
15
  Classifier: Programming Language :: Python :: 3
16
16
  Classifier: Programming Language :: Python :: 3.6
17
17
  Classifier: Programming Language :: Python :: 3.7
18
- Requires-Dist: tencentcloud-sdk-python-common<4.0.0,>=3.1.181
18
+ Requires-Dist: tencentcloud-sdk-python-common<4.0.0,>=3.1.188
19
19
 
20
20
  ============================
21
21
  Tencent Cloud SDK for Python
@@ -0,0 +1 @@
1
+ tencentcloud-sdk-python-common<4.0.0,>=3.1.188
@@ -1 +0,0 @@
1
- tencentcloud-sdk-python-common<4.0.0,>=3.1.181