tencentcloud-sdk-python 3.0.1437__py2.py3-none-any.whl → 3.0.1439__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.

Potentially problematic release.


This version of tencentcloud-sdk-python might be problematic. Click here for more details.

Files changed (42) hide show
  1. tencentcloud/__init__.py +1 -1
  2. tencentcloud/apm/v20210622/models.py +15 -0
  3. tencentcloud/cdn/v20180606/models.py +8 -0
  4. tencentcloud/cfw/v20190904/cfw_client.py +0 -75
  5. tencentcloud/cfw/v20190904/models.py +107 -702
  6. tencentcloud/ciam/v20220331/errorcodes.py +1 -1
  7. tencentcloud/cls/v20201016/models.py +38 -24
  8. tencentcloud/cwp/v20180228/cwp_client.py +2 -2
  9. tencentcloud/cwp/v20180228/models.py +8 -8
  10. tencentcloud/dlc/v20210125/models.py +120 -15
  11. tencentcloud/es/v20180416/errorcodes.py +3 -0
  12. tencentcloud/es/v20180416/models.py +225 -0
  13. tencentcloud/ess/v20201111/ess_client.py +0 -3
  14. tencentcloud/essbasic/v20210526/essbasic_client.py +0 -1
  15. tencentcloud/essbasic/v20210526/models.py +4 -0
  16. tencentcloud/iotexplorer/v20190423/errorcodes.py +12 -0
  17. tencentcloud/iotexplorer/v20190423/models.py +204 -4
  18. tencentcloud/lighthouse/v20200324/errorcodes.py +3 -0
  19. tencentcloud/mna/v20210119/errorcodes.py +1 -1
  20. tencentcloud/ocr/v20181119/models.py +2 -2
  21. tencentcloud/sqlserver/v20180328/models.py +6 -6
  22. tencentcloud/sqlserver/v20180328/sqlserver_client.py +2 -2
  23. tencentcloud/ssl/v20191205/errorcodes.py +3 -0
  24. tencentcloud/ssl/v20191205/models.py +60 -0
  25. tencentcloud/sts/v20180813/sts_client.py +16 -4
  26. tencentcloud/tdmq/v20200217/models.py +102 -0
  27. tencentcloud/teo/v20220901/models.py +14 -94
  28. tencentcloud/teo/v20220901/teo_client.py +8 -2
  29. tencentcloud/thpc/v20230321/errorcodes.py +24 -0
  30. tencentcloud/thpc/v20230321/models.py +1398 -132
  31. tencentcloud/thpc/v20230321/thpc_client.py +138 -0
  32. tencentcloud/trocket/v20230308/models.py +70 -0
  33. tencentcloud/tsf/v20180326/errorcodes.py +4 -4
  34. tencentcloud/tsf/v20180326/models.py +1211 -0
  35. tencentcloud/tsf/v20180326/tsf_client.py +69 -0
  36. tencentcloud/vod/v20180717/models.py +12 -4
  37. tencentcloud/wedata/v20210820/models.py +285 -19
  38. {tencentcloud_sdk_python-3.0.1437.dist-info → tencentcloud_sdk_python-3.0.1439.dist-info}/METADATA +1 -1
  39. {tencentcloud_sdk_python-3.0.1437.dist-info → tencentcloud_sdk_python-3.0.1439.dist-info}/RECORD +42 -42
  40. {tencentcloud_sdk_python-3.0.1437.dist-info → tencentcloud_sdk_python-3.0.1439.dist-info}/LICENSE +0 -0
  41. {tencentcloud_sdk_python-3.0.1437.dist-info → tencentcloud_sdk_python-3.0.1439.dist-info}/WHEEL +0 -0
  42. {tencentcloud_sdk_python-3.0.1437.dist-info → tencentcloud_sdk_python-3.0.1439.dist-info}/top_level.txt +0 -0
@@ -18,6 +18,146 @@ import warnings
18
18
  from tencentcloud.common.abstract_model import AbstractModel
19
19
 
20
20
 
21
+ class AutoScaleDiskInfo(AbstractModel):
22
+ """cvm 自动扩盘参数
23
+
24
+ """
25
+
26
+ def __init__(self):
27
+ r"""
28
+ :param _NodeType: 节点类型 hotData,warmData
29
+ 注意:此字段可能返回 null,表示取不到有效值。
30
+ :type NodeType: str
31
+ :param _ScaleType: 0:百分比扩容;1:绝对值扩容
32
+ 注意:此字段可能返回 null,表示取不到有效值。
33
+ :type ScaleType: int
34
+ :param _Threshold: 触发阈值,单位%,例如80%
35
+ 注意:此字段可能返回 null,表示取不到有效值。
36
+ :type Threshold: int
37
+ :param _Duration: 触发持续时间,单位分钟,例如60
38
+ 注意:此字段可能返回 null,表示取不到有效值。
39
+ :type Duration: int
40
+ :param _PercentSize: 每次扩容比例,单位%,例如20%
41
+ 注意:此字段可能返回 null,表示取不到有效值。
42
+ :type PercentSize: int
43
+ :param _FixSize: 绝对值扩容,单位GB,例如100GB
44
+ 注意:此字段可能返回 null,表示取不到有效值。
45
+ :type FixSize: int
46
+ :param _MaxSize: 扩容上限,单位GB,例如500GB
47
+ 注意:此字段可能返回 null,表示取不到有效值。
48
+ :type MaxSize: int
49
+ """
50
+ self._NodeType = None
51
+ self._ScaleType = None
52
+ self._Threshold = None
53
+ self._Duration = None
54
+ self._PercentSize = None
55
+ self._FixSize = None
56
+ self._MaxSize = None
57
+
58
+ @property
59
+ def NodeType(self):
60
+ """节点类型 hotData,warmData
61
+ 注意:此字段可能返回 null,表示取不到有效值。
62
+ :rtype: str
63
+ """
64
+ return self._NodeType
65
+
66
+ @NodeType.setter
67
+ def NodeType(self, NodeType):
68
+ self._NodeType = NodeType
69
+
70
+ @property
71
+ def ScaleType(self):
72
+ """0:百分比扩容;1:绝对值扩容
73
+ 注意:此字段可能返回 null,表示取不到有效值。
74
+ :rtype: int
75
+ """
76
+ return self._ScaleType
77
+
78
+ @ScaleType.setter
79
+ def ScaleType(self, ScaleType):
80
+ self._ScaleType = ScaleType
81
+
82
+ @property
83
+ def Threshold(self):
84
+ """触发阈值,单位%,例如80%
85
+ 注意:此字段可能返回 null,表示取不到有效值。
86
+ :rtype: int
87
+ """
88
+ return self._Threshold
89
+
90
+ @Threshold.setter
91
+ def Threshold(self, Threshold):
92
+ self._Threshold = Threshold
93
+
94
+ @property
95
+ def Duration(self):
96
+ """触发持续时间,单位分钟,例如60
97
+ 注意:此字段可能返回 null,表示取不到有效值。
98
+ :rtype: int
99
+ """
100
+ return self._Duration
101
+
102
+ @Duration.setter
103
+ def Duration(self, Duration):
104
+ self._Duration = Duration
105
+
106
+ @property
107
+ def PercentSize(self):
108
+ """每次扩容比例,单位%,例如20%
109
+ 注意:此字段可能返回 null,表示取不到有效值。
110
+ :rtype: int
111
+ """
112
+ return self._PercentSize
113
+
114
+ @PercentSize.setter
115
+ def PercentSize(self, PercentSize):
116
+ self._PercentSize = PercentSize
117
+
118
+ @property
119
+ def FixSize(self):
120
+ """绝对值扩容,单位GB,例如100GB
121
+ 注意:此字段可能返回 null,表示取不到有效值。
122
+ :rtype: int
123
+ """
124
+ return self._FixSize
125
+
126
+ @FixSize.setter
127
+ def FixSize(self, FixSize):
128
+ self._FixSize = FixSize
129
+
130
+ @property
131
+ def MaxSize(self):
132
+ """扩容上限,单位GB,例如500GB
133
+ 注意:此字段可能返回 null,表示取不到有效值。
134
+ :rtype: int
135
+ """
136
+ return self._MaxSize
137
+
138
+ @MaxSize.setter
139
+ def MaxSize(self, MaxSize):
140
+ self._MaxSize = MaxSize
141
+
142
+
143
+ def _deserialize(self, params):
144
+ self._NodeType = params.get("NodeType")
145
+ self._ScaleType = params.get("ScaleType")
146
+ self._Threshold = params.get("Threshold")
147
+ self._Duration = params.get("Duration")
148
+ self._PercentSize = params.get("PercentSize")
149
+ self._FixSize = params.get("FixSize")
150
+ self._MaxSize = params.get("MaxSize")
151
+ memeber_set = set(params.keys())
152
+ for name, value in vars(self).items():
153
+ property_name = name[1:]
154
+ if property_name in memeber_set:
155
+ memeber_set.remove(property_name)
156
+ if len(memeber_set) > 0:
157
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
158
+
159
+
160
+
21
161
  class BackingIndexMetaField(AbstractModel):
22
162
  """后备索引元数据字段
23
163
 
@@ -1508,6 +1648,10 @@ class CreateInstanceRequest(AbstractModel):
1508
1648
  :type EnableScheduleRecoverGroup: bool
1509
1649
  :param _EnableScheduleOperationDuration: 置放群组开启异步任务的可维护时间段
1510
1650
  :type EnableScheduleOperationDuration: :class:`tencentcloud.es.v20180416.models.EnableScheduleOperationDuration`
1651
+ :param _AutoScaleDiskInfoList: 自动扩盘参数列表
1652
+ :type AutoScaleDiskInfoList: list of AutoScaleDiskInfo
1653
+ :param _EnableKibanaPublicAccess: 是否开启kibana公网访问,不传默认开启
1654
+ :type EnableKibanaPublicAccess: str
1511
1655
  """
1512
1656
  self._Zone = None
1513
1657
  self._EsVersion = None
@@ -1549,6 +1693,8 @@ class CreateInstanceRequest(AbstractModel):
1549
1693
  self._ReadWriteMode = None
1550
1694
  self._EnableScheduleRecoverGroup = None
1551
1695
  self._EnableScheduleOperationDuration = None
1696
+ self._AutoScaleDiskInfoList = None
1697
+ self._EnableKibanaPublicAccess = None
1552
1698
 
1553
1699
  @property
1554
1700
  def Zone(self):
@@ -1998,6 +2144,28 @@ class CreateInstanceRequest(AbstractModel):
1998
2144
  def EnableScheduleOperationDuration(self, EnableScheduleOperationDuration):
1999
2145
  self._EnableScheduleOperationDuration = EnableScheduleOperationDuration
2000
2146
 
2147
+ @property
2148
+ def AutoScaleDiskInfoList(self):
2149
+ """自动扩盘参数列表
2150
+ :rtype: list of AutoScaleDiskInfo
2151
+ """
2152
+ return self._AutoScaleDiskInfoList
2153
+
2154
+ @AutoScaleDiskInfoList.setter
2155
+ def AutoScaleDiskInfoList(self, AutoScaleDiskInfoList):
2156
+ self._AutoScaleDiskInfoList = AutoScaleDiskInfoList
2157
+
2158
+ @property
2159
+ def EnableKibanaPublicAccess(self):
2160
+ """是否开启kibana公网访问,不传默认开启
2161
+ :rtype: str
2162
+ """
2163
+ return self._EnableKibanaPublicAccess
2164
+
2165
+ @EnableKibanaPublicAccess.setter
2166
+ def EnableKibanaPublicAccess(self, EnableKibanaPublicAccess):
2167
+ self._EnableKibanaPublicAccess = EnableKibanaPublicAccess
2168
+
2001
2169
 
2002
2170
  def _deserialize(self, params):
2003
2171
  self._Zone = params.get("Zone")
@@ -2061,6 +2229,13 @@ class CreateInstanceRequest(AbstractModel):
2061
2229
  if params.get("EnableScheduleOperationDuration") is not None:
2062
2230
  self._EnableScheduleOperationDuration = EnableScheduleOperationDuration()
2063
2231
  self._EnableScheduleOperationDuration._deserialize(params.get("EnableScheduleOperationDuration"))
2232
+ if params.get("AutoScaleDiskInfoList") is not None:
2233
+ self._AutoScaleDiskInfoList = []
2234
+ for item in params.get("AutoScaleDiskInfoList"):
2235
+ obj = AutoScaleDiskInfo()
2236
+ obj._deserialize(item)
2237
+ self._AutoScaleDiskInfoList.append(obj)
2238
+ self._EnableKibanaPublicAccess = params.get("EnableKibanaPublicAccess")
2064
2239
  memeber_set = set(params.keys())
2065
2240
  for name, value in vars(self).items():
2066
2241
  property_name = name[1:]
@@ -14702,6 +14877,8 @@ class Operation(AbstractModel):
14702
14877
  :param _SubAccountUin: 操作者Uin
14703
14878
  注意:此字段可能返回 null,表示取不到有效值。
14704
14879
  :type SubAccountUin: str
14880
+ :param _AutoScaleTag: 自动扩容标识:0-非自动,1-自动
14881
+ :type AutoScaleTag: int
14705
14882
  """
14706
14883
  self._Id = None
14707
14884
  self._StartTime = None
@@ -14712,6 +14889,7 @@ class Operation(AbstractModel):
14712
14889
  self._Progress = None
14713
14890
  self._RollbackTag = None
14714
14891
  self._SubAccountUin = None
14892
+ self._AutoScaleTag = None
14715
14893
 
14716
14894
  @property
14717
14895
  def Id(self):
@@ -14813,6 +14991,17 @@ class Operation(AbstractModel):
14813
14991
  def SubAccountUin(self, SubAccountUin):
14814
14992
  self._SubAccountUin = SubAccountUin
14815
14993
 
14994
+ @property
14995
+ def AutoScaleTag(self):
14996
+ """自动扩容标识:0-非自动,1-自动
14997
+ :rtype: int
14998
+ """
14999
+ return self._AutoScaleTag
15000
+
15001
+ @AutoScaleTag.setter
15002
+ def AutoScaleTag(self, AutoScaleTag):
15003
+ self._AutoScaleTag = AutoScaleTag
15004
+
14816
15005
 
14817
15006
  def _deserialize(self, params):
14818
15007
  self._Id = params.get("Id")
@@ -14831,6 +15020,7 @@ class Operation(AbstractModel):
14831
15020
  self._Progress = params.get("Progress")
14832
15021
  self._RollbackTag = params.get("RollbackTag")
14833
15022
  self._SubAccountUin = params.get("SubAccountUin")
15023
+ self._AutoScaleTag = params.get("AutoScaleTag")
14834
15024
  memeber_set = set(params.keys())
14835
15025
  for name, value in vars(self).items():
14836
15026
  property_name = name[1:]
@@ -18707,6 +18897,10 @@ CLOSE 关闭
18707
18897
  :type EnableScheduleOperationDuration: :class:`tencentcloud.es.v20180416.models.EnableScheduleOperationDuration`
18708
18898
  :param _EnableDestroyProtection: 开启集群保护:OPEN-开启,CLOSE-关闭
18709
18899
  :type EnableDestroyProtection: str
18900
+ :param _AutoScaleDiskInfoList: 自动扩盘参数
18901
+ :type AutoScaleDiskInfoList: list of AutoScaleDiskInfo
18902
+ :param _AutoScaleDiskDeleteNodeTypeList: 自动扩盘删除参数
18903
+ :type AutoScaleDiskDeleteNodeTypeList: list of str
18710
18904
  """
18711
18905
  self._InstanceId = None
18712
18906
  self._InstanceName = None
@@ -18752,6 +18946,8 @@ CLOSE 关闭
18752
18946
  self._EnableScheduleRecoverGroup = None
18753
18947
  self._EnableScheduleOperationDuration = None
18754
18948
  self._EnableDestroyProtection = None
18949
+ self._AutoScaleDiskInfoList = None
18950
+ self._AutoScaleDiskDeleteNodeTypeList = None
18755
18951
 
18756
18952
  @property
18757
18953
  def InstanceId(self):
@@ -19258,6 +19454,28 @@ CLOSE 关闭
19258
19454
  def EnableDestroyProtection(self, EnableDestroyProtection):
19259
19455
  self._EnableDestroyProtection = EnableDestroyProtection
19260
19456
 
19457
+ @property
19458
+ def AutoScaleDiskInfoList(self):
19459
+ """自动扩盘参数
19460
+ :rtype: list of AutoScaleDiskInfo
19461
+ """
19462
+ return self._AutoScaleDiskInfoList
19463
+
19464
+ @AutoScaleDiskInfoList.setter
19465
+ def AutoScaleDiskInfoList(self, AutoScaleDiskInfoList):
19466
+ self._AutoScaleDiskInfoList = AutoScaleDiskInfoList
19467
+
19468
+ @property
19469
+ def AutoScaleDiskDeleteNodeTypeList(self):
19470
+ """自动扩盘删除参数
19471
+ :rtype: list of str
19472
+ """
19473
+ return self._AutoScaleDiskDeleteNodeTypeList
19474
+
19475
+ @AutoScaleDiskDeleteNodeTypeList.setter
19476
+ def AutoScaleDiskDeleteNodeTypeList(self, AutoScaleDiskDeleteNodeTypeList):
19477
+ self._AutoScaleDiskDeleteNodeTypeList = AutoScaleDiskDeleteNodeTypeList
19478
+
19261
19479
 
19262
19480
  def _deserialize(self, params):
19263
19481
  self._InstanceId = params.get("InstanceId")
@@ -19333,6 +19551,13 @@ CLOSE 关闭
19333
19551
  self._EnableScheduleOperationDuration = EnableScheduleOperationDuration()
19334
19552
  self._EnableScheduleOperationDuration._deserialize(params.get("EnableScheduleOperationDuration"))
19335
19553
  self._EnableDestroyProtection = params.get("EnableDestroyProtection")
19554
+ if params.get("AutoScaleDiskInfoList") is not None:
19555
+ self._AutoScaleDiskInfoList = []
19556
+ for item in params.get("AutoScaleDiskInfoList"):
19557
+ obj = AutoScaleDiskInfo()
19558
+ obj._deserialize(item)
19559
+ self._AutoScaleDiskInfoList.append(obj)
19560
+ self._AutoScaleDiskDeleteNodeTypeList = params.get("AutoScaleDiskDeleteNodeTypeList")
19336
19561
  memeber_set = set(params.keys())
19337
19562
  for name, value in vars(self).items():
19338
19563
  property_name = name[1:]
@@ -562,9 +562,6 @@ class EssClient(AbstractClient):
562
562
  """此接口(CreateDynamicFlowApprover)接口主要用于补充动态签署方2.0合同的签署方信息,包括但不限于名字、手机号和签署区域等信息。
563
563
 
564
564
 
565
- **功能开通**
566
- 动态签署方2.0功能的使用需要先<font color="red">联系产品经理开通模块化计费功能</font>,然后到控制台中打开此功能。详细的使用说明请参考<a href="https://qian.tencent.com/developers/company/dynamic_signer_v2" target="_blank">动态签署方2.0</a>文档。
567
-
568
565
  **使用条件**
569
566
  - 在发起合同时,必须将OpenDynamicSignFlow参数设置为true,以确保合同以动态签署方2.0的方式处理,否则默认处理为普通合同。
570
567
  - 此接口只能在合同处于非终态时调用。一旦合同进入终态(例如:过期、拒签或撤销),将无法通过此接口添加新的签署方。
@@ -352,7 +352,6 @@ class EssbasicClient(AbstractClient):
352
352
  """接口(ChannelCreateDynamicFlowApprover)用来补充<a href="https://qian.tencent.com/developers/partnerApis/startFlows/ChannelCreateFlowByFiles" target="_blank">用PDF文件创建签署流程</a>发起的动态合同的签署人信息
353
353
  **注**:
354
354
  <ul>
355
- <li>此接口需要保证:渠道企业已开启:模块化计费能力,</li>
356
355
  <li>此接口需要保证:渠道应用已开启:动态签署人2.0能力</li>
357
356
  <li>此接口需要保证:合同发起时指定开启了动态合同</li>
358
357
  <li>此接口补充的动态签署人传参规则,请参考接口:<a href="https://qian.tencent.com/developers/partnerApis/startFlows/ChannelCreateFlowByFiles" target="_blank">用PDF文件创建签署流程</a>的签署人传参规则</li>
@@ -9686,7 +9686,9 @@ class ChannelDescribeEmployeesRequest(AbstractModel):
9686
9686
  :param _Filters: 查询的关键字段,支持Key-Values查询。可选键值如下:
9687
9687
  <ul>
9688
9688
  <li>Key:**"Status"**,Values: **["IsVerified"]**, 查询已实名的员工</li>
9689
+ <li>Key:**"Status"**,Values: **["NotVerified"]**, 查询未实名的员工</li>
9689
9690
  <li>Key:**"Status"**,Values: **["QuiteJob"]**, 查询离职员工</li>
9691
+ <li>Key:**"ExcludeQuiteJob"**,Values: **["true"]**, 查询排除离职员工</li>
9690
9692
  <li>Key:**"StaffOpenId"**,Values: **["OpenId1","OpenId2",...]**, 根据第三方系统用户OpenId查询员工</li>
9691
9693
  </ul>
9692
9694
  注: `同名字的Key的过滤条件会冲突, 只能填写一个`
@@ -9737,7 +9739,9 @@ class ChannelDescribeEmployeesRequest(AbstractModel):
9737
9739
  """查询的关键字段,支持Key-Values查询。可选键值如下:
9738
9740
  <ul>
9739
9741
  <li>Key:**"Status"**,Values: **["IsVerified"]**, 查询已实名的员工</li>
9742
+ <li>Key:**"Status"**,Values: **["NotVerified"]**, 查询未实名的员工</li>
9740
9743
  <li>Key:**"Status"**,Values: **["QuiteJob"]**, 查询离职员工</li>
9744
+ <li>Key:**"ExcludeQuiteJob"**,Values: **["true"]**, 查询排除离职员工</li>
9741
9745
  <li>Key:**"StaffOpenId"**,Values: **["OpenId1","OpenId2",...]**, 根据第三方系统用户OpenId查询员工</li>
9742
9746
  </ul>
9743
9747
  注: `同名字的Key的过滤条件会冲突, 只能填写一个`
@@ -77,9 +77,15 @@ FAILEDOPERATION_RULEALREADYENABLED = 'FailedOperation.RuleAlreadyEnabled'
77
77
  # 部分产品已经被绑定。
78
78
  FAILEDOPERATION_SOMEPRODUCTISALREADYBINDED = 'FailedOperation.SomeProductIsAlreadyBinded'
79
79
 
80
+ # 目标设备存在启用状态的 TWeSee 配置
81
+ FAILEDOPERATION_TARGETDEVICEHASENABLEDWESEECONFIG = 'FailedOperation.TargetDeviceHasEnabledWeSeeConfig'
82
+
80
83
  # 超过时间。
81
84
  FAILEDOPERATION_TIMEOUT = 'FailedOperation.Timeout'
82
85
 
86
+ # 未开通 TWeSee 后付费服务
87
+ FAILEDOPERATION_WESEESERVICENOTENABLED = 'FailedOperation.WeSeeServiceNotEnabled'
88
+
83
89
  # 内部错误。
84
90
  INTERNALERROR = 'InternalError'
85
91
 
@@ -458,12 +464,18 @@ RESOURCENOTFOUND_TOPICPOLICYNOTEXIST = 'ResourceNotFound.TopicPolicyNotExist'
458
464
  # 规则不存在。
459
465
  RESOURCENOTFOUND_TOPICRULENOTEXIST = 'ResourceNotFound.TopicRuleNotExist'
460
466
 
467
+ # TWeSee 后付费资源已隔离
468
+ RESOURCEUNAVAILABLE_WESEESERVICEISOLATED = 'ResourceUnavailable.WeSeeServiceIsolated'
469
+
461
470
  # 未授权操作。
462
471
  UNAUTHORIZEDOPERATION = 'UnauthorizedOperation'
463
472
 
464
473
  # APP对产品没有权限。
465
474
  UNAUTHORIZEDOPERATION_APPNOPERMISSIONTOSTUDIOPRODUCT = 'UnauthorizedOperation.APPNoPermissionToStudioProduct'
466
475
 
476
+ # 该账号未在白名单内,不能通过 API 创建 AI 任务
477
+ UNAUTHORIZEDOPERATION_APICREATEAITASKNOTINWHITELIST = 'UnauthorizedOperation.ApiCreateAITaskNotInWhitelist'
478
+
467
479
  # App无权限。
468
480
  UNAUTHORIZEDOPERATION_APPNOPERMISSION = 'UnauthorizedOperation.AppNoPermission'
469
481