tencentcloud-sdk-python-mongodb 3.0.1121__tar.gz → 3.0.1137__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.
- {tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/PKG-INFO +1 -1
- {tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/setup.py +1 -1
- {tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/tencentcloud/__init__.py +1 -1
- {tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/tencentcloud/mongodb/v20190725/errorcodes.py +9 -0
- {tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/tencentcloud/mongodb/v20190725/models.py +281 -0
- {tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/tencentcloud/mongodb/v20190725/mongodb_client.py +24 -0
- {tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/tencentcloud_sdk_python_mongodb.egg-info/PKG-INFO +1 -1
- tencentcloud-sdk-python-mongodb-3.0.1137/tencentcloud_sdk_python_mongodb.egg-info/requires.txt +1 -0
- tencentcloud-sdk-python-mongodb-3.0.1121/tencentcloud_sdk_python_mongodb.egg-info/requires.txt +0 -1
- {tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/README.rst +0 -0
- {tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/setup.cfg +0 -0
- {tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/tencentcloud/mongodb/__init__.py +0 -0
- {tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/tencentcloud/mongodb/v20180408/__init__.py +0 -0
- {tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/tencentcloud/mongodb/v20180408/errorcodes.py +0 -0
- {tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/tencentcloud/mongodb/v20180408/models.py +0 -0
- {tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/tencentcloud/mongodb/v20180408/mongodb_client.py +0 -0
- {tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/tencentcloud/mongodb/v20190725/__init__.py +0 -0
- {tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/tencentcloud_sdk_python_mongodb.egg-info/SOURCES.txt +0 -0
- {tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/tencentcloud_sdk_python_mongodb.egg-info/dependency_links.txt +0 -0
- {tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/tencentcloud_sdk_python_mongodb.egg-info/top_level.txt +0 -0
{tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/setup.py
RENAMED
|
@@ -8,7 +8,7 @@ ROOT = os.path.dirname(__file__)
|
|
|
8
8
|
|
|
9
9
|
setup(
|
|
10
10
|
name='tencentcloud-sdk-python-mongodb',
|
|
11
|
-
install_requires=["tencentcloud-sdk-python-common==3.0.
|
|
11
|
+
install_requires=["tencentcloud-sdk-python-common==3.0.1137"],
|
|
12
12
|
version=tencentcloud.__version__,
|
|
13
13
|
description='Tencent Cloud Mongodb SDK for Python',
|
|
14
14
|
long_description=open('README.rst').read(),
|
|
@@ -20,6 +20,9 @@ AUTHFAILURE = 'AuthFailure'
|
|
|
20
20
|
# 操作失败。
|
|
21
21
|
FAILEDOPERATION = 'FailedOperation'
|
|
22
22
|
|
|
23
|
+
# 按key回档未开启
|
|
24
|
+
FAILEDOPERATION_FLASHBACKBYKEYNOTOPEN = 'FailedOperation.FlashbackByKeyNotOpen'
|
|
25
|
+
|
|
23
26
|
# 内核响应超时。
|
|
24
27
|
FAILEDOPERATION_KERNELRESPONSETIMEOUT = 'FailedOperation.KernelResponseTimeout'
|
|
25
28
|
|
|
@@ -47,6 +50,9 @@ INVALIDPARAMETER_CURRENTINSTANCENOTSUPPORTMODIFYPARAMS = 'InvalidParameter.Curre
|
|
|
47
50
|
# 无效Vip信息。
|
|
48
51
|
INVALIDPARAMETER_INVALIDVIP = 'InvalidParameter.InvalidVip'
|
|
49
52
|
|
|
53
|
+
# 接口参数为空。
|
|
54
|
+
INVALIDPARAMETER_PARAMETERSNIL = 'InvalidParameter.ParametersNil'
|
|
55
|
+
|
|
50
56
|
# 当前子账号无权执行该操作。
|
|
51
57
|
INVALIDPARAMETER_PERMISSIONDENIED = 'InvalidParameter.PermissionDenied'
|
|
52
58
|
|
|
@@ -188,5 +194,8 @@ RESOURCENOTFOUND = 'ResourceNotFound'
|
|
|
188
194
|
# 操作不支持。
|
|
189
195
|
UNSUPPORTEDOPERATION = 'UnsupportedOperation'
|
|
190
196
|
|
|
197
|
+
# 内核版本不支持。
|
|
198
|
+
UNSUPPORTEDOPERATION_KERNELVERSIONNOTSUPPORT = 'UnsupportedOperation.KernelVersionNotSupport'
|
|
199
|
+
|
|
191
200
|
# 当前版本不支持该操作。
|
|
192
201
|
UNSUPPORTEDOPERATION_VERSIONNOTSUPPORT = 'UnsupportedOperation.VersionNotSupport'
|
|
@@ -4010,6 +4010,287 @@ class DescribeSpecInfoResponse(AbstractModel):
|
|
|
4010
4010
|
self._RequestId = params.get("RequestId")
|
|
4011
4011
|
|
|
4012
4012
|
|
|
4013
|
+
class FBKeyValue(AbstractModel):
|
|
4014
|
+
"""按key回档,用于筛选数据的键值对
|
|
4015
|
+
|
|
4016
|
+
"""
|
|
4017
|
+
|
|
4018
|
+
def __init__(self):
|
|
4019
|
+
r"""
|
|
4020
|
+
:param _Key: 用于按key回档过滤的key
|
|
4021
|
+
:type Key: str
|
|
4022
|
+
:param _Value: 用于按key回档过滤的value
|
|
4023
|
+
:type Value: str
|
|
4024
|
+
"""
|
|
4025
|
+
self._Key = None
|
|
4026
|
+
self._Value = None
|
|
4027
|
+
|
|
4028
|
+
@property
|
|
4029
|
+
def Key(self):
|
|
4030
|
+
return self._Key
|
|
4031
|
+
|
|
4032
|
+
@Key.setter
|
|
4033
|
+
def Key(self, Key):
|
|
4034
|
+
self._Key = Key
|
|
4035
|
+
|
|
4036
|
+
@property
|
|
4037
|
+
def Value(self):
|
|
4038
|
+
return self._Value
|
|
4039
|
+
|
|
4040
|
+
@Value.setter
|
|
4041
|
+
def Value(self, Value):
|
|
4042
|
+
self._Value = Value
|
|
4043
|
+
|
|
4044
|
+
|
|
4045
|
+
def _deserialize(self, params):
|
|
4046
|
+
self._Key = params.get("Key")
|
|
4047
|
+
self._Value = params.get("Value")
|
|
4048
|
+
memeber_set = set(params.keys())
|
|
4049
|
+
for name, value in vars(self).items():
|
|
4050
|
+
property_name = name[1:]
|
|
4051
|
+
if property_name in memeber_set:
|
|
4052
|
+
memeber_set.remove(property_name)
|
|
4053
|
+
if len(memeber_set) > 0:
|
|
4054
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
4055
|
+
|
|
4056
|
+
|
|
4057
|
+
|
|
4058
|
+
class FlashBackDBInstanceRequest(AbstractModel):
|
|
4059
|
+
"""FlashBackDBInstance请求参数结构体
|
|
4060
|
+
|
|
4061
|
+
"""
|
|
4062
|
+
|
|
4063
|
+
def __init__(self):
|
|
4064
|
+
r"""
|
|
4065
|
+
:param _InstanceId: 开启按 Key 回档的实例 ID。
|
|
4066
|
+
:type InstanceId: str
|
|
4067
|
+
:param _TargetFlashbackTime: 源数据想恢复到的时间。
|
|
4068
|
+
:type TargetFlashbackTime: str
|
|
4069
|
+
:param _TargetDatabases: 源数据所在的库表信息。
|
|
4070
|
+
:type TargetDatabases: list of FlashbackDatabase
|
|
4071
|
+
:param _TargetInstanceId: 数据最终写入的实例 ID。
|
|
4072
|
+
:type TargetInstanceId: str
|
|
4073
|
+
"""
|
|
4074
|
+
self._InstanceId = None
|
|
4075
|
+
self._TargetFlashbackTime = None
|
|
4076
|
+
self._TargetDatabases = None
|
|
4077
|
+
self._TargetInstanceId = None
|
|
4078
|
+
|
|
4079
|
+
@property
|
|
4080
|
+
def InstanceId(self):
|
|
4081
|
+
return self._InstanceId
|
|
4082
|
+
|
|
4083
|
+
@InstanceId.setter
|
|
4084
|
+
def InstanceId(self, InstanceId):
|
|
4085
|
+
self._InstanceId = InstanceId
|
|
4086
|
+
|
|
4087
|
+
@property
|
|
4088
|
+
def TargetFlashbackTime(self):
|
|
4089
|
+
return self._TargetFlashbackTime
|
|
4090
|
+
|
|
4091
|
+
@TargetFlashbackTime.setter
|
|
4092
|
+
def TargetFlashbackTime(self, TargetFlashbackTime):
|
|
4093
|
+
self._TargetFlashbackTime = TargetFlashbackTime
|
|
4094
|
+
|
|
4095
|
+
@property
|
|
4096
|
+
def TargetDatabases(self):
|
|
4097
|
+
return self._TargetDatabases
|
|
4098
|
+
|
|
4099
|
+
@TargetDatabases.setter
|
|
4100
|
+
def TargetDatabases(self, TargetDatabases):
|
|
4101
|
+
self._TargetDatabases = TargetDatabases
|
|
4102
|
+
|
|
4103
|
+
@property
|
|
4104
|
+
def TargetInstanceId(self):
|
|
4105
|
+
return self._TargetInstanceId
|
|
4106
|
+
|
|
4107
|
+
@TargetInstanceId.setter
|
|
4108
|
+
def TargetInstanceId(self, TargetInstanceId):
|
|
4109
|
+
self._TargetInstanceId = TargetInstanceId
|
|
4110
|
+
|
|
4111
|
+
|
|
4112
|
+
def _deserialize(self, params):
|
|
4113
|
+
self._InstanceId = params.get("InstanceId")
|
|
4114
|
+
self._TargetFlashbackTime = params.get("TargetFlashbackTime")
|
|
4115
|
+
if params.get("TargetDatabases") is not None:
|
|
4116
|
+
self._TargetDatabases = []
|
|
4117
|
+
for item in params.get("TargetDatabases"):
|
|
4118
|
+
obj = FlashbackDatabase()
|
|
4119
|
+
obj._deserialize(item)
|
|
4120
|
+
self._TargetDatabases.append(obj)
|
|
4121
|
+
self._TargetInstanceId = params.get("TargetInstanceId")
|
|
4122
|
+
memeber_set = set(params.keys())
|
|
4123
|
+
for name, value in vars(self).items():
|
|
4124
|
+
property_name = name[1:]
|
|
4125
|
+
if property_name in memeber_set:
|
|
4126
|
+
memeber_set.remove(property_name)
|
|
4127
|
+
if len(memeber_set) > 0:
|
|
4128
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
4129
|
+
|
|
4130
|
+
|
|
4131
|
+
|
|
4132
|
+
class FlashBackDBInstanceResponse(AbstractModel):
|
|
4133
|
+
"""FlashBackDBInstance返回参数结构体
|
|
4134
|
+
|
|
4135
|
+
"""
|
|
4136
|
+
|
|
4137
|
+
def __init__(self):
|
|
4138
|
+
r"""
|
|
4139
|
+
:param _FlowId: 回档数据异步任务 ID。
|
|
4140
|
+
注意:此字段可能返回 null,表示取不到有效值。
|
|
4141
|
+
:type FlowId: int
|
|
4142
|
+
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
4143
|
+
:type RequestId: str
|
|
4144
|
+
"""
|
|
4145
|
+
self._FlowId = None
|
|
4146
|
+
self._RequestId = None
|
|
4147
|
+
|
|
4148
|
+
@property
|
|
4149
|
+
def FlowId(self):
|
|
4150
|
+
return self._FlowId
|
|
4151
|
+
|
|
4152
|
+
@FlowId.setter
|
|
4153
|
+
def FlowId(self, FlowId):
|
|
4154
|
+
self._FlowId = FlowId
|
|
4155
|
+
|
|
4156
|
+
@property
|
|
4157
|
+
def RequestId(self):
|
|
4158
|
+
return self._RequestId
|
|
4159
|
+
|
|
4160
|
+
@RequestId.setter
|
|
4161
|
+
def RequestId(self, RequestId):
|
|
4162
|
+
self._RequestId = RequestId
|
|
4163
|
+
|
|
4164
|
+
|
|
4165
|
+
def _deserialize(self, params):
|
|
4166
|
+
self._FlowId = params.get("FlowId")
|
|
4167
|
+
self._RequestId = params.get("RequestId")
|
|
4168
|
+
|
|
4169
|
+
|
|
4170
|
+
class FlashbackCollection(AbstractModel):
|
|
4171
|
+
"""按key回档,源数据所在的表
|
|
4172
|
+
|
|
4173
|
+
"""
|
|
4174
|
+
|
|
4175
|
+
def __init__(self):
|
|
4176
|
+
r"""
|
|
4177
|
+
:param _CollectionName: 按key回档指定的集合名
|
|
4178
|
+
:type CollectionName: str
|
|
4179
|
+
:param _TargetResultCollectionName: 按key回档到的目标集合名
|
|
4180
|
+
:type TargetResultCollectionName: str
|
|
4181
|
+
:param _FilterKey: 上传到cos的文件的value所对应的key值
|
|
4182
|
+
:type FilterKey: str
|
|
4183
|
+
:param _KeyValues: 用于按key回档过滤的键值对
|
|
4184
|
+
:type KeyValues: list of FBKeyValue
|
|
4185
|
+
"""
|
|
4186
|
+
self._CollectionName = None
|
|
4187
|
+
self._TargetResultCollectionName = None
|
|
4188
|
+
self._FilterKey = None
|
|
4189
|
+
self._KeyValues = None
|
|
4190
|
+
|
|
4191
|
+
@property
|
|
4192
|
+
def CollectionName(self):
|
|
4193
|
+
return self._CollectionName
|
|
4194
|
+
|
|
4195
|
+
@CollectionName.setter
|
|
4196
|
+
def CollectionName(self, CollectionName):
|
|
4197
|
+
self._CollectionName = CollectionName
|
|
4198
|
+
|
|
4199
|
+
@property
|
|
4200
|
+
def TargetResultCollectionName(self):
|
|
4201
|
+
return self._TargetResultCollectionName
|
|
4202
|
+
|
|
4203
|
+
@TargetResultCollectionName.setter
|
|
4204
|
+
def TargetResultCollectionName(self, TargetResultCollectionName):
|
|
4205
|
+
self._TargetResultCollectionName = TargetResultCollectionName
|
|
4206
|
+
|
|
4207
|
+
@property
|
|
4208
|
+
def FilterKey(self):
|
|
4209
|
+
return self._FilterKey
|
|
4210
|
+
|
|
4211
|
+
@FilterKey.setter
|
|
4212
|
+
def FilterKey(self, FilterKey):
|
|
4213
|
+
self._FilterKey = FilterKey
|
|
4214
|
+
|
|
4215
|
+
@property
|
|
4216
|
+
def KeyValues(self):
|
|
4217
|
+
return self._KeyValues
|
|
4218
|
+
|
|
4219
|
+
@KeyValues.setter
|
|
4220
|
+
def KeyValues(self, KeyValues):
|
|
4221
|
+
self._KeyValues = KeyValues
|
|
4222
|
+
|
|
4223
|
+
|
|
4224
|
+
def _deserialize(self, params):
|
|
4225
|
+
self._CollectionName = params.get("CollectionName")
|
|
4226
|
+
self._TargetResultCollectionName = params.get("TargetResultCollectionName")
|
|
4227
|
+
self._FilterKey = params.get("FilterKey")
|
|
4228
|
+
if params.get("KeyValues") is not None:
|
|
4229
|
+
self._KeyValues = []
|
|
4230
|
+
for item in params.get("KeyValues"):
|
|
4231
|
+
obj = FBKeyValue()
|
|
4232
|
+
obj._deserialize(item)
|
|
4233
|
+
self._KeyValues.append(obj)
|
|
4234
|
+
memeber_set = set(params.keys())
|
|
4235
|
+
for name, value in vars(self).items():
|
|
4236
|
+
property_name = name[1:]
|
|
4237
|
+
if property_name in memeber_set:
|
|
4238
|
+
memeber_set.remove(property_name)
|
|
4239
|
+
if len(memeber_set) > 0:
|
|
4240
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
4241
|
+
|
|
4242
|
+
|
|
4243
|
+
|
|
4244
|
+
class FlashbackDatabase(AbstractModel):
|
|
4245
|
+
"""按key回档,源数据所在的库表
|
|
4246
|
+
|
|
4247
|
+
"""
|
|
4248
|
+
|
|
4249
|
+
def __init__(self):
|
|
4250
|
+
r"""
|
|
4251
|
+
:param _DBName: 按key回档源数据所在库
|
|
4252
|
+
:type DBName: str
|
|
4253
|
+
:param _Collections: 按key回档的集群数组
|
|
4254
|
+
:type Collections: list of FlashbackCollection
|
|
4255
|
+
"""
|
|
4256
|
+
self._DBName = None
|
|
4257
|
+
self._Collections = None
|
|
4258
|
+
|
|
4259
|
+
@property
|
|
4260
|
+
def DBName(self):
|
|
4261
|
+
return self._DBName
|
|
4262
|
+
|
|
4263
|
+
@DBName.setter
|
|
4264
|
+
def DBName(self, DBName):
|
|
4265
|
+
self._DBName = DBName
|
|
4266
|
+
|
|
4267
|
+
@property
|
|
4268
|
+
def Collections(self):
|
|
4269
|
+
return self._Collections
|
|
4270
|
+
|
|
4271
|
+
@Collections.setter
|
|
4272
|
+
def Collections(self, Collections):
|
|
4273
|
+
self._Collections = Collections
|
|
4274
|
+
|
|
4275
|
+
|
|
4276
|
+
def _deserialize(self, params):
|
|
4277
|
+
self._DBName = params.get("DBName")
|
|
4278
|
+
if params.get("Collections") is not None:
|
|
4279
|
+
self._Collections = []
|
|
4280
|
+
for item in params.get("Collections"):
|
|
4281
|
+
obj = FlashbackCollection()
|
|
4282
|
+
obj._deserialize(item)
|
|
4283
|
+
self._Collections.append(obj)
|
|
4284
|
+
memeber_set = set(params.keys())
|
|
4285
|
+
for name, value in vars(self).items():
|
|
4286
|
+
property_name = name[1:]
|
|
4287
|
+
if property_name in memeber_set:
|
|
4288
|
+
memeber_set.remove(property_name)
|
|
4289
|
+
if len(memeber_set) > 0:
|
|
4290
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
4291
|
+
|
|
4292
|
+
|
|
4293
|
+
|
|
4013
4294
|
class FlushInstanceRouterConfigRequest(AbstractModel):
|
|
4014
4295
|
"""FlushInstanceRouterConfig请求参数结构体
|
|
4015
4296
|
|
|
@@ -509,6 +509,30 @@ class MongodbClient(AbstractClient):
|
|
|
509
509
|
raise TencentCloudSDKException(type(e).__name__, str(e))
|
|
510
510
|
|
|
511
511
|
|
|
512
|
+
def FlashBackDBInstance(self, request):
|
|
513
|
+
"""该接口用于发起按 Key 闪回任务,依据数据的闪回 Key(默认为 id)对数据进行极速回档,快速恢复业务。
|
|
514
|
+
**说明:按 Key 闪回于2023年09月11日正式进行公测,在此期间,该接口仅对公测用户开放。**
|
|
515
|
+
|
|
516
|
+
:param request: Request instance for FlashBackDBInstance.
|
|
517
|
+
:type request: :class:`tencentcloud.mongodb.v20190725.models.FlashBackDBInstanceRequest`
|
|
518
|
+
:rtype: :class:`tencentcloud.mongodb.v20190725.models.FlashBackDBInstanceResponse`
|
|
519
|
+
|
|
520
|
+
"""
|
|
521
|
+
try:
|
|
522
|
+
params = request._serialize()
|
|
523
|
+
headers = request.headers
|
|
524
|
+
body = self.call("FlashBackDBInstance", params, headers=headers)
|
|
525
|
+
response = json.loads(body)
|
|
526
|
+
model = models.FlashBackDBInstanceResponse()
|
|
527
|
+
model._deserialize(response["Response"])
|
|
528
|
+
return model
|
|
529
|
+
except Exception as e:
|
|
530
|
+
if isinstance(e, TencentCloudSDKException):
|
|
531
|
+
raise
|
|
532
|
+
else:
|
|
533
|
+
raise TencentCloudSDKException(type(e).__name__, str(e))
|
|
534
|
+
|
|
535
|
+
|
|
512
536
|
def FlushInstanceRouterConfig(self, request):
|
|
513
537
|
"""在所有mongos上执行FlushRouterConfig命令
|
|
514
538
|
|
tencentcloud-sdk-python-mongodb-3.0.1137/tencentcloud_sdk_python_mongodb.egg-info/requires.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tencentcloud-sdk-python-common==3.0.1137
|
tencentcloud-sdk-python-mongodb-3.0.1121/tencentcloud_sdk_python_mongodb.egg-info/requires.txt
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tencentcloud-sdk-python-common==3.0.1121
|
{tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/README.rst
RENAMED
|
File without changes
|
{tencentcloud-sdk-python-mongodb-3.0.1121 → tencentcloud-sdk-python-mongodb-3.0.1137}/setup.cfg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|