tencentcloud-sdk-python-cfw 3.1.127__tar.gz → 3.1.135__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_cfw-3.1.127 → tencentcloud_sdk_python_cfw-3.1.135}/PKG-INFO +2 -2
  2. {tencentcloud_sdk_python_cfw-3.1.127 → tencentcloud_sdk_python_cfw-3.1.135}/setup.py +1 -1
  3. {tencentcloud_sdk_python_cfw-3.1.127 → tencentcloud_sdk_python_cfw-3.1.135}/tencentcloud/__init__.py +1 -1
  4. {tencentcloud_sdk_python_cfw-3.1.127 → tencentcloud_sdk_python_cfw-3.1.135}/tencentcloud/cfw/v20190904/cfw_client.py +207 -0
  5. {tencentcloud_sdk_python_cfw-3.1.127 → tencentcloud_sdk_python_cfw-3.1.135}/tencentcloud/cfw/v20190904/cfw_client_async.py +162 -0
  6. {tencentcloud_sdk_python_cfw-3.1.127 → tencentcloud_sdk_python_cfw-3.1.135}/tencentcloud/cfw/v20190904/errorcodes.py +3 -0
  7. {tencentcloud_sdk_python_cfw-3.1.127 → tencentcloud_sdk_python_cfw-3.1.135}/tencentcloud/cfw/v20190904/models.py +1740 -237
  8. {tencentcloud_sdk_python_cfw-3.1.127 → tencentcloud_sdk_python_cfw-3.1.135}/tencentcloud_sdk_python_cfw.egg-info/PKG-INFO +2 -2
  9. tencentcloud_sdk_python_cfw-3.1.135/tencentcloud_sdk_python_cfw.egg-info/requires.txt +1 -0
  10. tencentcloud_sdk_python_cfw-3.1.127/tencentcloud_sdk_python_cfw.egg-info/requires.txt +0 -1
  11. {tencentcloud_sdk_python_cfw-3.1.127 → tencentcloud_sdk_python_cfw-3.1.135}/README.rst +0 -0
  12. {tencentcloud_sdk_python_cfw-3.1.127 → tencentcloud_sdk_python_cfw-3.1.135}/setup.cfg +0 -0
  13. {tencentcloud_sdk_python_cfw-3.1.127 → tencentcloud_sdk_python_cfw-3.1.135}/tencentcloud/cfw/__init__.py +0 -0
  14. {tencentcloud_sdk_python_cfw-3.1.127 → tencentcloud_sdk_python_cfw-3.1.135}/tencentcloud/cfw/v20190904/__init__.py +0 -0
  15. {tencentcloud_sdk_python_cfw-3.1.127 → tencentcloud_sdk_python_cfw-3.1.135}/tencentcloud_sdk_python_cfw.egg-info/SOURCES.txt +0 -0
  16. {tencentcloud_sdk_python_cfw-3.1.127 → tencentcloud_sdk_python_cfw-3.1.135}/tencentcloud_sdk_python_cfw.egg-info/dependency_links.txt +0 -0
  17. {tencentcloud_sdk_python_cfw-3.1.127 → tencentcloud_sdk_python_cfw-3.1.135}/tencentcloud_sdk_python_cfw.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tencentcloud-sdk-python-cfw
3
- Version: 3.1.127
3
+ Version: 3.1.135
4
4
  Summary: Tencent Cloud Cfw 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.127
18
+ Requires-Dist: tencentcloud-sdk-python-common<4.0.0,>=3.1.135
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-cfw',
11
- install_requires=["tencentcloud-sdk-python-common>=3.1.127,<4.0.0"],
11
+ install_requires=["tencentcloud-sdk-python-common>=3.1.135,<4.0.0"],
12
12
 
13
13
  version=tencentcloud.__version__,
14
14
  description='Tencent Cloud Cfw SDK for Python',
@@ -14,4 +14,4 @@
14
14
  # limitations under the License.
15
15
 
16
16
 
17
- __version__ = '3.1.127'
17
+ __version__ = '3.1.135'
@@ -971,6 +971,75 @@ class CfwClient(AbstractClient):
971
971
  raise TencentCloudSDKException(type(e).__name__, str(e))
972
972
 
973
973
 
974
+ def DescribeCfwAlerts(self, request):
975
+ r"""查询当前租户防火墙聚合告警事件。Response.Data 内 total 表示聚合告警事件数;alerts[].occurrence_count 表示单个聚合告警事件的告警发生次数/命中次数。
976
+
977
+ :param request: Request instance for DescribeCfwAlerts.
978
+ :type request: :class:`tencentcloud.cfw.v20190904.models.DescribeCfwAlertsRequest`
979
+ :rtype: :class:`tencentcloud.cfw.v20190904.models.DescribeCfwAlertsResponse`
980
+
981
+ """
982
+ try:
983
+ params = request._serialize()
984
+ headers = request.headers
985
+ body = self.call("DescribeCfwAlerts", params, headers=headers)
986
+ response = json.loads(body)
987
+ model = models.DescribeCfwAlertsResponse()
988
+ model._deserialize(response["Response"])
989
+ return model
990
+ except Exception as e:
991
+ if isinstance(e, TencentCloudSDKException):
992
+ raise
993
+ else:
994
+ raise TencentCloudSDKException(type(e).__name__, str(e))
995
+
996
+
997
+ def DescribeCfwAnalysisData(self, request):
998
+ r"""查询当前租户防火墙分析报告数据。按分析场景返回整组分析结果,结果在 Response.Data 的 JSON 字符串中。
999
+
1000
+ :param request: Request instance for DescribeCfwAnalysisData.
1001
+ :type request: :class:`tencentcloud.cfw.v20190904.models.DescribeCfwAnalysisDataRequest`
1002
+ :rtype: :class:`tencentcloud.cfw.v20190904.models.DescribeCfwAnalysisDataResponse`
1003
+
1004
+ """
1005
+ try:
1006
+ params = request._serialize()
1007
+ headers = request.headers
1008
+ body = self.call("DescribeCfwAnalysisData", params, headers=headers)
1009
+ response = json.loads(body)
1010
+ model = models.DescribeCfwAnalysisDataResponse()
1011
+ model._deserialize(response["Response"])
1012
+ return model
1013
+ except Exception as e:
1014
+ if isinstance(e, TencentCloudSDKException):
1015
+ raise
1016
+ else:
1017
+ raise TencentCloudSDKException(type(e).__name__, str(e))
1018
+
1019
+
1020
+ def DescribeCfwAssets(self, request):
1021
+ r"""查询当前租户防火墙纳管资产。默认查询主机资产;仅明确需要 VPC 或子网时传 AssetType。结果在 Response.Data 的 JSON 字符串中。
1022
+
1023
+ :param request: Request instance for DescribeCfwAssets.
1024
+ :type request: :class:`tencentcloud.cfw.v20190904.models.DescribeCfwAssetsRequest`
1025
+ :rtype: :class:`tencentcloud.cfw.v20190904.models.DescribeCfwAssetsResponse`
1026
+
1027
+ """
1028
+ try:
1029
+ params = request._serialize()
1030
+ headers = request.headers
1031
+ body = self.call("DescribeCfwAssets", params, headers=headers)
1032
+ response = json.loads(body)
1033
+ model = models.DescribeCfwAssetsResponse()
1034
+ model._deserialize(response["Response"])
1035
+ return model
1036
+ except Exception as e:
1037
+ if isinstance(e, TencentCloudSDKException):
1038
+ raise
1039
+ else:
1040
+ raise TencentCloudSDKException(type(e).__name__, str(e))
1041
+
1042
+
974
1043
  def DescribeCfwEips(self, request):
975
1044
  r"""查询防火墙弹性公网IP
976
1045
 
@@ -1017,6 +1086,144 @@ class CfwClient(AbstractClient):
1017
1086
  raise TencentCloudSDKException(type(e).__name__, str(e))
1018
1087
 
1019
1088
 
1089
+ def DescribeCfwLogs(self, request):
1090
+ r"""查询当前租户防火墙日志。分页只使用 Response.Data 内的 HasMore / NextToken。
1091
+
1092
+ :param request: Request instance for DescribeCfwLogs.
1093
+ :type request: :class:`tencentcloud.cfw.v20190904.models.DescribeCfwLogsRequest`
1094
+ :rtype: :class:`tencentcloud.cfw.v20190904.models.DescribeCfwLogsResponse`
1095
+
1096
+ """
1097
+ try:
1098
+ params = request._serialize()
1099
+ headers = request.headers
1100
+ body = self.call("DescribeCfwLogs", params, headers=headers)
1101
+ response = json.loads(body)
1102
+ model = models.DescribeCfwLogsResponse()
1103
+ model._deserialize(response["Response"])
1104
+ return model
1105
+ except Exception as e:
1106
+ if isinstance(e, TencentCloudSDKException):
1107
+ raise
1108
+ else:
1109
+ raise TencentCloudSDKException(type(e).__name__, str(e))
1110
+
1111
+
1112
+ def DescribeCfwRiskOverview(self, request):
1113
+ r"""查询当前租户风险中心未处理风险概览。默认查询最近 7 天;自定义时间范围需同时传 StartTime 和 EndTime。结果在 Response.Data 的 JSON 字符串中。
1114
+
1115
+ :param request: Request instance for DescribeCfwRiskOverview.
1116
+ :type request: :class:`tencentcloud.cfw.v20190904.models.DescribeCfwRiskOverviewRequest`
1117
+ :rtype: :class:`tencentcloud.cfw.v20190904.models.DescribeCfwRiskOverviewResponse`
1118
+
1119
+ """
1120
+ try:
1121
+ params = request._serialize()
1122
+ headers = request.headers
1123
+ body = self.call("DescribeCfwRiskOverview", params, headers=headers)
1124
+ response = json.loads(body)
1125
+ model = models.DescribeCfwRiskOverviewResponse()
1126
+ model._deserialize(response["Response"])
1127
+ return model
1128
+ except Exception as e:
1129
+ if isinstance(e, TencentCloudSDKException):
1130
+ raise
1131
+ else:
1132
+ raise TencentCloudSDKException(type(e).__name__, str(e))
1133
+
1134
+
1135
+ def DescribeCfwRuleOptimization(self, request):
1136
+ r"""查询当前租户防火墙规则优化建议。只读分析,不修改规则;Action 名保持单数 RuleOptimization。结果在 Response.Data 的 JSON 字符串中。
1137
+
1138
+ :param request: Request instance for DescribeCfwRuleOptimization.
1139
+ :type request: :class:`tencentcloud.cfw.v20190904.models.DescribeCfwRuleOptimizationRequest`
1140
+ :rtype: :class:`tencentcloud.cfw.v20190904.models.DescribeCfwRuleOptimizationResponse`
1141
+
1142
+ """
1143
+ try:
1144
+ params = request._serialize()
1145
+ headers = request.headers
1146
+ body = self.call("DescribeCfwRuleOptimization", params, headers=headers)
1147
+ response = json.loads(body)
1148
+ model = models.DescribeCfwRuleOptimizationResponse()
1149
+ model._deserialize(response["Response"])
1150
+ return model
1151
+ except Exception as e:
1152
+ if isinstance(e, TencentCloudSDKException):
1153
+ raise
1154
+ else:
1155
+ raise TencentCloudSDKException(type(e).__name__, str(e))
1156
+
1157
+
1158
+ def DescribeCfwRules(self, request):
1159
+ r"""查询当前租户防火墙规则配置。覆盖互联网边界、NAT、VPC、企业安全组,以及入侵防御 intrusion_prevention 的 blocklist、whitelist、isolate 三类有效列表。结果在 Response.Data 的 JSON 字符串中。
1160
+
1161
+ :param request: Request instance for DescribeCfwRules.
1162
+ :type request: :class:`tencentcloud.cfw.v20190904.models.DescribeCfwRulesRequest`
1163
+ :rtype: :class:`tencentcloud.cfw.v20190904.models.DescribeCfwRulesResponse`
1164
+
1165
+ """
1166
+ try:
1167
+ params = request._serialize()
1168
+ headers = request.headers
1169
+ body = self.call("DescribeCfwRules", params, headers=headers)
1170
+ response = json.loads(body)
1171
+ model = models.DescribeCfwRulesResponse()
1172
+ model._deserialize(response["Response"])
1173
+ return model
1174
+ except Exception as e:
1175
+ if isinstance(e, TencentCloudSDKException):
1176
+ raise
1177
+ else:
1178
+ raise TencentCloudSDKException(type(e).__name__, str(e))
1179
+
1180
+
1181
+ def DescribeCfwStatusMonitor(self, request):
1182
+ r"""查询状态监控场景。Op=describe_scene 用于发现可用场景、指标、视角和二级下拉 available_options;Op=fetch_scene 用于拉取具体场景快照,结果在 Response.Data 的 JSON 字符串中。
1183
+
1184
+ :param request: Request instance for DescribeCfwStatusMonitor.
1185
+ :type request: :class:`tencentcloud.cfw.v20190904.models.DescribeCfwStatusMonitorRequest`
1186
+ :rtype: :class:`tencentcloud.cfw.v20190904.models.DescribeCfwStatusMonitorResponse`
1187
+
1188
+ """
1189
+ try:
1190
+ params = request._serialize()
1191
+ headers = request.headers
1192
+ body = self.call("DescribeCfwStatusMonitor", params, headers=headers)
1193
+ response = json.loads(body)
1194
+ model = models.DescribeCfwStatusMonitorResponse()
1195
+ model._deserialize(response["Response"])
1196
+ return model
1197
+ except Exception as e:
1198
+ if isinstance(e, TencentCloudSDKException):
1199
+ raise
1200
+ else:
1201
+ raise TencentCloudSDKException(type(e).__name__, str(e))
1202
+
1203
+
1204
+ def DescribeCfwSwitches(self, request):
1205
+ r"""查询当前租户防火墙防护开关总览。结果在 Response.Data 的 JSON 字符串中。本接口没有自定义业务入参,不支持过滤、排序或分页。
1206
+
1207
+ :param request: Request instance for DescribeCfwSwitches.
1208
+ :type request: :class:`tencentcloud.cfw.v20190904.models.DescribeCfwSwitchesRequest`
1209
+ :rtype: :class:`tencentcloud.cfw.v20190904.models.DescribeCfwSwitchesResponse`
1210
+
1211
+ """
1212
+ try:
1213
+ params = request._serialize()
1214
+ headers = request.headers
1215
+ body = self.call("DescribeCfwSwitches", params, headers=headers)
1216
+ response = json.loads(body)
1217
+ model = models.DescribeCfwSwitchesResponse()
1218
+ model._deserialize(response["Response"])
1219
+ return model
1220
+ except Exception as e:
1221
+ if isinstance(e, TencentCloudSDKException):
1222
+ raise
1223
+ else:
1224
+ raise TencentCloudSDKException(type(e).__name__, str(e))
1225
+
1226
+
1020
1227
  def DescribeClusterNatCcnFwSwitchList(self, request):
1021
1228
  r"""查询NAT CCN集群模式防火墙开关列表
1022
1229
 
@@ -765,6 +765,60 @@ class CfwClient(AbstractClient):
765
765
 
766
766
  return await self.call_and_deserialize(**kwargs)
767
767
 
768
+ async def DescribeCfwAlerts(
769
+ self,
770
+ request: models.DescribeCfwAlertsRequest,
771
+ opts: Dict = None,
772
+ ) -> models.DescribeCfwAlertsResponse:
773
+ """
774
+ 查询当前租户防火墙聚合告警事件。Response.Data 内 total 表示聚合告警事件数;alerts[].occurrence_count 表示单个聚合告警事件的告警发生次数/命中次数。
775
+ """
776
+
777
+ kwargs = {}
778
+ kwargs["action"] = "DescribeCfwAlerts"
779
+ kwargs["params"] = request._serialize()
780
+ kwargs["resp_cls"] = models.DescribeCfwAlertsResponse
781
+ kwargs["headers"] = request.headers
782
+ kwargs["opts"] = opts or {}
783
+
784
+ return await self.call_and_deserialize(**kwargs)
785
+
786
+ async def DescribeCfwAnalysisData(
787
+ self,
788
+ request: models.DescribeCfwAnalysisDataRequest,
789
+ opts: Dict = None,
790
+ ) -> models.DescribeCfwAnalysisDataResponse:
791
+ """
792
+ 查询当前租户防火墙分析报告数据。按分析场景返回整组分析结果,结果在 Response.Data 的 JSON 字符串中。
793
+ """
794
+
795
+ kwargs = {}
796
+ kwargs["action"] = "DescribeCfwAnalysisData"
797
+ kwargs["params"] = request._serialize()
798
+ kwargs["resp_cls"] = models.DescribeCfwAnalysisDataResponse
799
+ kwargs["headers"] = request.headers
800
+ kwargs["opts"] = opts or {}
801
+
802
+ return await self.call_and_deserialize(**kwargs)
803
+
804
+ async def DescribeCfwAssets(
805
+ self,
806
+ request: models.DescribeCfwAssetsRequest,
807
+ opts: Dict = None,
808
+ ) -> models.DescribeCfwAssetsResponse:
809
+ """
810
+ 查询当前租户防火墙纳管资产。默认查询主机资产;仅明确需要 VPC 或子网时传 AssetType。结果在 Response.Data 的 JSON 字符串中。
811
+ """
812
+
813
+ kwargs = {}
814
+ kwargs["action"] = "DescribeCfwAssets"
815
+ kwargs["params"] = request._serialize()
816
+ kwargs["resp_cls"] = models.DescribeCfwAssetsResponse
817
+ kwargs["headers"] = request.headers
818
+ kwargs["opts"] = opts or {}
819
+
820
+ return await self.call_and_deserialize(**kwargs)
821
+
768
822
  async def DescribeCfwEips(
769
823
  self,
770
824
  request: models.DescribeCfwEipsRequest,
@@ -801,6 +855,114 @@ class CfwClient(AbstractClient):
801
855
 
802
856
  return await self.call_and_deserialize(**kwargs)
803
857
 
858
+ async def DescribeCfwLogs(
859
+ self,
860
+ request: models.DescribeCfwLogsRequest,
861
+ opts: Dict = None,
862
+ ) -> models.DescribeCfwLogsResponse:
863
+ """
864
+ 查询当前租户防火墙日志。分页只使用 Response.Data 内的 HasMore / NextToken。
865
+ """
866
+
867
+ kwargs = {}
868
+ kwargs["action"] = "DescribeCfwLogs"
869
+ kwargs["params"] = request._serialize()
870
+ kwargs["resp_cls"] = models.DescribeCfwLogsResponse
871
+ kwargs["headers"] = request.headers
872
+ kwargs["opts"] = opts or {}
873
+
874
+ return await self.call_and_deserialize(**kwargs)
875
+
876
+ async def DescribeCfwRiskOverview(
877
+ self,
878
+ request: models.DescribeCfwRiskOverviewRequest,
879
+ opts: Dict = None,
880
+ ) -> models.DescribeCfwRiskOverviewResponse:
881
+ """
882
+ 查询当前租户风险中心未处理风险概览。默认查询最近 7 天;自定义时间范围需同时传 StartTime 和 EndTime。结果在 Response.Data 的 JSON 字符串中。
883
+ """
884
+
885
+ kwargs = {}
886
+ kwargs["action"] = "DescribeCfwRiskOverview"
887
+ kwargs["params"] = request._serialize()
888
+ kwargs["resp_cls"] = models.DescribeCfwRiskOverviewResponse
889
+ kwargs["headers"] = request.headers
890
+ kwargs["opts"] = opts or {}
891
+
892
+ return await self.call_and_deserialize(**kwargs)
893
+
894
+ async def DescribeCfwRuleOptimization(
895
+ self,
896
+ request: models.DescribeCfwRuleOptimizationRequest,
897
+ opts: Dict = None,
898
+ ) -> models.DescribeCfwRuleOptimizationResponse:
899
+ """
900
+ 查询当前租户防火墙规则优化建议。只读分析,不修改规则;Action 名保持单数 RuleOptimization。结果在 Response.Data 的 JSON 字符串中。
901
+ """
902
+
903
+ kwargs = {}
904
+ kwargs["action"] = "DescribeCfwRuleOptimization"
905
+ kwargs["params"] = request._serialize()
906
+ kwargs["resp_cls"] = models.DescribeCfwRuleOptimizationResponse
907
+ kwargs["headers"] = request.headers
908
+ kwargs["opts"] = opts or {}
909
+
910
+ return await self.call_and_deserialize(**kwargs)
911
+
912
+ async def DescribeCfwRules(
913
+ self,
914
+ request: models.DescribeCfwRulesRequest,
915
+ opts: Dict = None,
916
+ ) -> models.DescribeCfwRulesResponse:
917
+ """
918
+ 查询当前租户防火墙规则配置。覆盖互联网边界、NAT、VPC、企业安全组,以及入侵防御 intrusion_prevention 的 blocklist、whitelist、isolate 三类有效列表。结果在 Response.Data 的 JSON 字符串中。
919
+ """
920
+
921
+ kwargs = {}
922
+ kwargs["action"] = "DescribeCfwRules"
923
+ kwargs["params"] = request._serialize()
924
+ kwargs["resp_cls"] = models.DescribeCfwRulesResponse
925
+ kwargs["headers"] = request.headers
926
+ kwargs["opts"] = opts or {}
927
+
928
+ return await self.call_and_deserialize(**kwargs)
929
+
930
+ async def DescribeCfwStatusMonitor(
931
+ self,
932
+ request: models.DescribeCfwStatusMonitorRequest,
933
+ opts: Dict = None,
934
+ ) -> models.DescribeCfwStatusMonitorResponse:
935
+ """
936
+ 查询状态监控场景。Op=describe_scene 用于发现可用场景、指标、视角和二级下拉 available_options;Op=fetch_scene 用于拉取具体场景快照,结果在 Response.Data 的 JSON 字符串中。
937
+ """
938
+
939
+ kwargs = {}
940
+ kwargs["action"] = "DescribeCfwStatusMonitor"
941
+ kwargs["params"] = request._serialize()
942
+ kwargs["resp_cls"] = models.DescribeCfwStatusMonitorResponse
943
+ kwargs["headers"] = request.headers
944
+ kwargs["opts"] = opts or {}
945
+
946
+ return await self.call_and_deserialize(**kwargs)
947
+
948
+ async def DescribeCfwSwitches(
949
+ self,
950
+ request: models.DescribeCfwSwitchesRequest,
951
+ opts: Dict = None,
952
+ ) -> models.DescribeCfwSwitchesResponse:
953
+ """
954
+ 查询当前租户防火墙防护开关总览。结果在 Response.Data 的 JSON 字符串中。本接口没有自定义业务入参,不支持过滤、排序或分页。
955
+ """
956
+
957
+ kwargs = {}
958
+ kwargs["action"] = "DescribeCfwSwitches"
959
+ kwargs["params"] = request._serialize()
960
+ kwargs["resp_cls"] = models.DescribeCfwSwitchesResponse
961
+ kwargs["headers"] = request.headers
962
+ kwargs["opts"] = opts or {}
963
+
964
+ return await self.call_and_deserialize(**kwargs)
965
+
804
966
  async def DescribeClusterNatCcnFwSwitchList(
805
967
  self,
806
968
  request: models.DescribeClusterNatCcnFwSwitchListRequest,
@@ -29,6 +29,9 @@ FAILEDOPERATION_INVALIDCONTEXT = 'FailedOperation.InvalidContext'
29
29
  # FailedOperation.QueryError
30
30
  FAILEDOPERATION_QUERYERROR = 'FailedOperation.QueryError'
31
31
 
32
+ # FailedOperation.ResponseTooLarge
33
+ FAILEDOPERATION_RESPONSETOOLARGE = 'FailedOperation.ResponseTooLarge'
34
+
32
35
  # FailedOperation.SearchTimeout
33
36
  FAILEDOPERATION_SEARCHTIMEOUT = 'FailedOperation.SearchTimeout'
34
37