tencentcloud-sdk-python-iotexplorer 3.1.134__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.
- {tencentcloud_sdk_python_iotexplorer-3.1.134 → tencentcloud_sdk_python_iotexplorer-3.1.135}/PKG-INFO +2 -2
- {tencentcloud_sdk_python_iotexplorer-3.1.134 → tencentcloud_sdk_python_iotexplorer-3.1.135}/setup.py +1 -1
- {tencentcloud_sdk_python_iotexplorer-3.1.134 → tencentcloud_sdk_python_iotexplorer-3.1.135}/tencentcloud/__init__.py +1 -1
- {tencentcloud_sdk_python_iotexplorer-3.1.134 → tencentcloud_sdk_python_iotexplorer-3.1.135}/tencentcloud/iotexplorer/v20190423/errorcodes.py +12 -0
- {tencentcloud_sdk_python_iotexplorer-3.1.134 → tencentcloud_sdk_python_iotexplorer-3.1.135}/tencentcloud/iotexplorer/v20190423/iotexplorer_client.py +107 -0
- {tencentcloud_sdk_python_iotexplorer-3.1.134 → tencentcloud_sdk_python_iotexplorer-3.1.135}/tencentcloud/iotexplorer/v20190423/iotexplorer_client_async.py +92 -0
- {tencentcloud_sdk_python_iotexplorer-3.1.134 → tencentcloud_sdk_python_iotexplorer-3.1.135}/tencentcloud/iotexplorer/v20190423/models.py +522 -0
- {tencentcloud_sdk_python_iotexplorer-3.1.134 → tencentcloud_sdk_python_iotexplorer-3.1.135}/tencentcloud_sdk_python_iotexplorer.egg-info/PKG-INFO +2 -2
- tencentcloud_sdk_python_iotexplorer-3.1.135/tencentcloud_sdk_python_iotexplorer.egg-info/requires.txt +1 -0
- tencentcloud_sdk_python_iotexplorer-3.1.134/tencentcloud_sdk_python_iotexplorer.egg-info/requires.txt +0 -1
- {tencentcloud_sdk_python_iotexplorer-3.1.134 → tencentcloud_sdk_python_iotexplorer-3.1.135}/README.rst +0 -0
- {tencentcloud_sdk_python_iotexplorer-3.1.134 → tencentcloud_sdk_python_iotexplorer-3.1.135}/setup.cfg +0 -0
- {tencentcloud_sdk_python_iotexplorer-3.1.134 → tencentcloud_sdk_python_iotexplorer-3.1.135}/tencentcloud/iotexplorer/__init__.py +0 -0
- {tencentcloud_sdk_python_iotexplorer-3.1.134 → tencentcloud_sdk_python_iotexplorer-3.1.135}/tencentcloud/iotexplorer/v20190423/__init__.py +0 -0
- {tencentcloud_sdk_python_iotexplorer-3.1.134 → tencentcloud_sdk_python_iotexplorer-3.1.135}/tencentcloud_sdk_python_iotexplorer.egg-info/SOURCES.txt +0 -0
- {tencentcloud_sdk_python_iotexplorer-3.1.134 → tencentcloud_sdk_python_iotexplorer-3.1.135}/tencentcloud_sdk_python_iotexplorer.egg-info/dependency_links.txt +0 -0
- {tencentcloud_sdk_python_iotexplorer-3.1.134 → tencentcloud_sdk_python_iotexplorer-3.1.135}/tencentcloud_sdk_python_iotexplorer.egg-info/top_level.txt +0 -0
{tencentcloud_sdk_python_iotexplorer-3.1.134 → tencentcloud_sdk_python_iotexplorer-3.1.135}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: tencentcloud-sdk-python-iotexplorer
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.135
|
|
4
4
|
Summary: Tencent Cloud Iotexplorer 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.
|
|
18
|
+
Requires-Dist: tencentcloud-sdk-python-common<4.0.0,>=3.1.135
|
|
19
19
|
|
|
20
20
|
============================
|
|
21
21
|
Tencent Cloud SDK for Python
|
{tencentcloud_sdk_python_iotexplorer-3.1.134 → tencentcloud_sdk_python_iotexplorer-3.1.135}/setup.py
RENAMED
|
@@ -8,7 +8,7 @@ ROOT = os.path.dirname(__file__)
|
|
|
8
8
|
|
|
9
9
|
setup(
|
|
10
10
|
name='tencentcloud-sdk-python-iotexplorer',
|
|
11
|
-
install_requires=["tencentcloud-sdk-python-common>=3.1.
|
|
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 Iotexplorer SDK for Python',
|
|
@@ -239,6 +239,9 @@ INVALIDPARAMETERVALUE_FORWARDREDIRECTDENIED = 'InvalidParameterValue.ForwardRedi
|
|
|
239
239
|
# 拉取产品列表失败。
|
|
240
240
|
INVALIDPARAMETERVALUE_GETPRODUCTSLISTERROR = 'InvalidParameterValue.GetProductsListError'
|
|
241
241
|
|
|
242
|
+
# AppKey 无效
|
|
243
|
+
INVALIDPARAMETERVALUE_INVALIDAPPKEY = 'InvalidParameterValue.InvalidAppKey'
|
|
244
|
+
|
|
242
245
|
# 回调 Token 格式有误
|
|
243
246
|
INVALIDPARAMETERVALUE_INVALIDCALLBACKTOKEN = 'InvalidParameterValue.InvalidCallbackToken'
|
|
244
247
|
|
|
@@ -359,6 +362,9 @@ INVALIDPARAMETERVALUE_TPNSANDROIDVALIDATIONFAILED = 'InvalidParameterValue.TPNSA
|
|
|
359
362
|
# TPNSiOSAccessID, TPNSiOSSecretKey, TPNSiOSRegion validation failed。
|
|
360
363
|
INVALIDPARAMETERVALUE_TPNSIOSVALIDATIONFAILED = 'InvalidParameterValue.TPNSiOSValidationFailed'
|
|
361
364
|
|
|
365
|
+
# Topic与replyTopic必须同时设置或同时为空
|
|
366
|
+
INVALIDPARAMETERVALUE_TOPICMISMATCH = 'InvalidParameterValue.TopicMismatch'
|
|
367
|
+
|
|
362
368
|
# Topic已存在。
|
|
363
369
|
INVALIDPARAMETERVALUE_TOPICPOLICYALREADYEXIST = 'InvalidParameterValue.TopicPolicyAlreadyExist'
|
|
364
370
|
|
|
@@ -695,6 +701,9 @@ UNSUPPORTEDOPERATION_PRODUCTHASBINDEDGATEWAYPRODUCT = 'UnsupportedOperation.Prod
|
|
|
695
701
|
# 产品已被共享,请先解除共享。
|
|
696
702
|
UNSUPPORTEDOPERATION_PRODUCTHASSHARED = 'UnsupportedOperation.ProductHasShared'
|
|
697
703
|
|
|
704
|
+
# 子产品禁止直接绑定家庭,请走网关绑定
|
|
705
|
+
UNSUPPORTEDOPERATION_PRODUCTISSUBPRODUCT = 'UnsupportedOperation.ProductIsSubProduct'
|
|
706
|
+
|
|
698
707
|
# 存在重复项目。
|
|
699
708
|
UNSUPPORTEDOPERATION_PROJECTDUPKEYEXIST = 'UnsupportedOperation.ProjectDupKeyExist'
|
|
700
709
|
|
|
@@ -724,3 +733,6 @@ UNSUPPORTEDOPERATION_VIDEOINSUFFICIENTLICENSES = 'UnsupportedOperation.VideoInsu
|
|
|
724
733
|
|
|
725
734
|
# Video平台产品不存在。
|
|
726
735
|
UNSUPPORTEDOPERATION_VIDEOPRODUCTNOTEXIST = 'UnsupportedOperation.VideoProductNotExist'
|
|
736
|
+
|
|
737
|
+
# 虚拟设备禁止绑定 / 解绑
|
|
738
|
+
UNSUPPORTEDOPERATION_VIRTUALDEVICECANNOTBIND = 'UnsupportedOperation.VirtualDeviceCannotBind'
|
|
@@ -258,6 +258,31 @@ class IotexplorerClient(AbstractClient):
|
|
|
258
258
|
raise TencentCloudSDKException(type(e).__name__, str(e))
|
|
259
259
|
|
|
260
260
|
|
|
261
|
+
def BindUserDevice(self, request):
|
|
262
|
+
r"""1. 按 `(IotAppID, OpenID)` 兜底创建 / 复用 app 端用户;
|
|
263
|
+
2. 按 `(用户, FamilyName)` 兜底创建 / 复用默认家庭;
|
|
264
|
+
3. 将设备直接绑定到该家庭(已绑同家庭视为成功,并继续异步下发 `bind_device` 消息)。
|
|
265
|
+
|
|
266
|
+
:param request: Request instance for BindUserDevice.
|
|
267
|
+
:type request: :class:`tencentcloud.iotexplorer.v20190423.models.BindUserDeviceRequest`
|
|
268
|
+
:rtype: :class:`tencentcloud.iotexplorer.v20190423.models.BindUserDeviceResponse`
|
|
269
|
+
|
|
270
|
+
"""
|
|
271
|
+
try:
|
|
272
|
+
params = request._serialize()
|
|
273
|
+
headers = request.headers
|
|
274
|
+
body = self.call("BindUserDevice", params, headers=headers)
|
|
275
|
+
response = json.loads(body)
|
|
276
|
+
model = models.BindUserDeviceResponse()
|
|
277
|
+
model._deserialize(response["Response"])
|
|
278
|
+
return model
|
|
279
|
+
except Exception as e:
|
|
280
|
+
if isinstance(e, TencentCloudSDKException):
|
|
281
|
+
raise
|
|
282
|
+
else:
|
|
283
|
+
raise TencentCloudSDKException(type(e).__name__, str(e))
|
|
284
|
+
|
|
285
|
+
|
|
261
286
|
def CallDeviceActionAsync(self, request):
|
|
262
287
|
r"""提供给用户异步调用设备行为的能力
|
|
263
288
|
|
|
@@ -304,6 +329,63 @@ class IotexplorerClient(AbstractClient):
|
|
|
304
329
|
raise TencentCloudSDKException(type(e).__name__, str(e))
|
|
305
330
|
|
|
306
331
|
|
|
332
|
+
def CallDeviceRRPCSync(self, request):
|
|
333
|
+
r"""平台向设备发起一次同步 RRPC(Reverse RPC)调用——下行下发请求,同步阻塞等待设备回包,超时未回则返回 Timeout。
|
|
334
|
+
|
|
335
|
+
适用场景:
|
|
336
|
+
|
|
337
|
+
默认模式:使用平台保留 topic $iotrrpc/down 和 $iotrrpc/up。
|
|
338
|
+
自定义模式:业务自带下行 topic;Reply topic 可选 —— 不传时平台仅依赖 clientToken 关联上行 ack。
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
## 设备侧实现指引
|
|
343
|
+
|
|
344
|
+
### 默认模式
|
|
345
|
+
|
|
346
|
+
1. 订阅 `$iotrrpc/down/{ProductId}/{DeviceName}/+`;
|
|
347
|
+
2. 收到下行后,从 topic 末段解析 `{mid}`;
|
|
348
|
+
3. 向 `$iotrrpc/up/{ProductId}/{DeviceName}/{mid}` 发送回包,**payload 任意字节**(推荐 JSON)。
|
|
349
|
+
|
|
350
|
+
### 自定义模式
|
|
351
|
+
|
|
352
|
+
1. 订阅业务 `Topic`;
|
|
353
|
+
2. 解析 payload JSON,**保留 `clientToken` 字段**;
|
|
354
|
+
3. 处理业务后,构造 envelope JSON:
|
|
355
|
+
|
|
356
|
+
```json
|
|
357
|
+
{
|
|
358
|
+
"method": "rrpc_sync_reply",
|
|
359
|
+
"clientToken": "<原样回填>",
|
|
360
|
+
"payload": "<base64 of 业务字节>"
|
|
361
|
+
}
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
4. publish 到与平台 `ReplyTopic` 通配符匹配的具体 topic(推荐使用与下行同 topic)。
|
|
365
|
+
|
|
366
|
+
> ⚠️ `clientToken` **必填且必须原样回填**,否则平台无法关联,调用方将收到 `Status=Timeout`。
|
|
367
|
+
> ⚠️ `method` 必须为 `rrpc_sync_reply`,否则会直接 skip。
|
|
368
|
+
|
|
369
|
+
:param request: Request instance for CallDeviceRRPCSync.
|
|
370
|
+
:type request: :class:`tencentcloud.iotexplorer.v20190423.models.CallDeviceRRPCSyncRequest`
|
|
371
|
+
:rtype: :class:`tencentcloud.iotexplorer.v20190423.models.CallDeviceRRPCSyncResponse`
|
|
372
|
+
|
|
373
|
+
"""
|
|
374
|
+
try:
|
|
375
|
+
params = request._serialize()
|
|
376
|
+
headers = request.headers
|
|
377
|
+
body = self.call("CallDeviceRRPCSync", params, headers=headers)
|
|
378
|
+
response = json.loads(body)
|
|
379
|
+
model = models.CallDeviceRRPCSyncResponse()
|
|
380
|
+
model._deserialize(response["Response"])
|
|
381
|
+
return model
|
|
382
|
+
except Exception as e:
|
|
383
|
+
if isinstance(e, TencentCloudSDKException):
|
|
384
|
+
raise
|
|
385
|
+
else:
|
|
386
|
+
raise TencentCloudSDKException(type(e).__name__, str(e))
|
|
387
|
+
|
|
388
|
+
|
|
307
389
|
def ChangeP2PRoute(self, request):
|
|
308
390
|
r"""p2p路线切换(此接口目前处于内测接口,可以联系申请加白 )
|
|
309
391
|
|
|
@@ -5117,6 +5199,31 @@ class IotexplorerClient(AbstractClient):
|
|
|
5117
5199
|
raise TencentCloudSDKException(type(e).__name__, str(e))
|
|
5118
5200
|
|
|
5119
5201
|
|
|
5202
|
+
def RevokeBindUserDevice(self, request):
|
|
5203
|
+
r"""1. 按 `(IotAppID, OpenID)` 只读定位用户(不存在视为已解绑,幂等成功);
|
|
5204
|
+
2. 按 `(用户, FamilyName)` 只读定位家庭(不存在视为已解绑,幂等成功);
|
|
5205
|
+
3. 解除设备与该家庭的绑定关系,异步下发 `delete_device` 消息;解绑路径不校验设备存在性,允许设备已删除时清理残留绑定关系。
|
|
5206
|
+
|
|
5207
|
+
:param request: Request instance for RevokeBindUserDevice.
|
|
5208
|
+
:type request: :class:`tencentcloud.iotexplorer.v20190423.models.RevokeBindUserDeviceRequest`
|
|
5209
|
+
:rtype: :class:`tencentcloud.iotexplorer.v20190423.models.RevokeBindUserDeviceResponse`
|
|
5210
|
+
|
|
5211
|
+
"""
|
|
5212
|
+
try:
|
|
5213
|
+
params = request._serialize()
|
|
5214
|
+
headers = request.headers
|
|
5215
|
+
body = self.call("RevokeBindUserDevice", params, headers=headers)
|
|
5216
|
+
response = json.loads(body)
|
|
5217
|
+
model = models.RevokeBindUserDeviceResponse()
|
|
5218
|
+
model._deserialize(response["Response"])
|
|
5219
|
+
return model
|
|
5220
|
+
except Exception as e:
|
|
5221
|
+
if isinstance(e, TencentCloudSDKException):
|
|
5222
|
+
raise
|
|
5223
|
+
else:
|
|
5224
|
+
raise TencentCloudSDKException(type(e).__name__, str(e))
|
|
5225
|
+
|
|
5226
|
+
|
|
5120
5227
|
def SearchPositionSpace(self, request):
|
|
5121
5228
|
r"""搜索位置空间
|
|
5122
5229
|
|
|
@@ -207,6 +207,26 @@ class IotexplorerClient(AbstractClient):
|
|
|
207
207
|
|
|
208
208
|
return await self.call_and_deserialize(**kwargs)
|
|
209
209
|
|
|
210
|
+
async def BindUserDevice(
|
|
211
|
+
self,
|
|
212
|
+
request: models.BindUserDeviceRequest,
|
|
213
|
+
opts: Dict = None,
|
|
214
|
+
) -> models.BindUserDeviceResponse:
|
|
215
|
+
"""
|
|
216
|
+
1. 按 `(IotAppID, OpenID)` 兜底创建 / 复用 app 端用户;
|
|
217
|
+
2. 按 `(用户, FamilyName)` 兜底创建 / 复用默认家庭;
|
|
218
|
+
3. 将设备直接绑定到该家庭(已绑同家庭视为成功,并继续异步下发 `bind_device` 消息)。
|
|
219
|
+
"""
|
|
220
|
+
|
|
221
|
+
kwargs = {}
|
|
222
|
+
kwargs["action"] = "BindUserDevice"
|
|
223
|
+
kwargs["params"] = request._serialize()
|
|
224
|
+
kwargs["resp_cls"] = models.BindUserDeviceResponse
|
|
225
|
+
kwargs["headers"] = request.headers
|
|
226
|
+
kwargs["opts"] = opts or {}
|
|
227
|
+
|
|
228
|
+
return await self.call_and_deserialize(**kwargs)
|
|
229
|
+
|
|
210
230
|
async def CallDeviceActionAsync(
|
|
211
231
|
self,
|
|
212
232
|
request: models.CallDeviceActionAsyncRequest,
|
|
@@ -243,6 +263,58 @@ class IotexplorerClient(AbstractClient):
|
|
|
243
263
|
|
|
244
264
|
return await self.call_and_deserialize(**kwargs)
|
|
245
265
|
|
|
266
|
+
async def CallDeviceRRPCSync(
|
|
267
|
+
self,
|
|
268
|
+
request: models.CallDeviceRRPCSyncRequest,
|
|
269
|
+
opts: Dict = None,
|
|
270
|
+
) -> models.CallDeviceRRPCSyncResponse:
|
|
271
|
+
"""
|
|
272
|
+
平台向设备发起一次同步 RRPC(Reverse RPC)调用——下行下发请求,同步阻塞等待设备回包,超时未回则返回 Timeout。
|
|
273
|
+
|
|
274
|
+
适用场景:
|
|
275
|
+
|
|
276
|
+
默认模式:使用平台保留 topic $iotrrpc/down 和 $iotrrpc/up。
|
|
277
|
+
自定义模式:业务自带下行 topic;Reply topic 可选 —— 不传时平台仅依赖 clientToken 关联上行 ack。
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
## 设备侧实现指引
|
|
282
|
+
|
|
283
|
+
### 默认模式
|
|
284
|
+
|
|
285
|
+
1. 订阅 `$iotrrpc/down/{ProductId}/{DeviceName}/+`;
|
|
286
|
+
2. 收到下行后,从 topic 末段解析 `{mid}`;
|
|
287
|
+
3. 向 `$iotrrpc/up/{ProductId}/{DeviceName}/{mid}` 发送回包,**payload 任意字节**(推荐 JSON)。
|
|
288
|
+
|
|
289
|
+
### 自定义模式
|
|
290
|
+
|
|
291
|
+
1. 订阅业务 `Topic`;
|
|
292
|
+
2. 解析 payload JSON,**保留 `clientToken` 字段**;
|
|
293
|
+
3. 处理业务后,构造 envelope JSON:
|
|
294
|
+
|
|
295
|
+
```json
|
|
296
|
+
{
|
|
297
|
+
"method": "rrpc_sync_reply",
|
|
298
|
+
"clientToken": "<原样回填>",
|
|
299
|
+
"payload": "<base64 of 业务字节>"
|
|
300
|
+
}
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
4. publish 到与平台 `ReplyTopic` 通配符匹配的具体 topic(推荐使用与下行同 topic)。
|
|
304
|
+
|
|
305
|
+
> ⚠️ `clientToken` **必填且必须原样回填**,否则平台无法关联,调用方将收到 `Status=Timeout`。
|
|
306
|
+
> ⚠️ `method` 必须为 `rrpc_sync_reply`,否则会直接 skip。
|
|
307
|
+
"""
|
|
308
|
+
|
|
309
|
+
kwargs = {}
|
|
310
|
+
kwargs["action"] = "CallDeviceRRPCSync"
|
|
311
|
+
kwargs["params"] = request._serialize()
|
|
312
|
+
kwargs["resp_cls"] = models.CallDeviceRRPCSyncResponse
|
|
313
|
+
kwargs["headers"] = request.headers
|
|
314
|
+
kwargs["opts"] = opts or {}
|
|
315
|
+
|
|
316
|
+
return await self.call_and_deserialize(**kwargs)
|
|
317
|
+
|
|
246
318
|
async def ChangeP2PRoute(
|
|
247
319
|
self,
|
|
248
320
|
request: models.ChangeP2PRouteRequest,
|
|
@@ -4011,6 +4083,26 @@ class IotexplorerClient(AbstractClient):
|
|
|
4011
4083
|
|
|
4012
4084
|
return await self.call_and_deserialize(**kwargs)
|
|
4013
4085
|
|
|
4086
|
+
async def RevokeBindUserDevice(
|
|
4087
|
+
self,
|
|
4088
|
+
request: models.RevokeBindUserDeviceRequest,
|
|
4089
|
+
opts: Dict = None,
|
|
4090
|
+
) -> models.RevokeBindUserDeviceResponse:
|
|
4091
|
+
"""
|
|
4092
|
+
1. 按 `(IotAppID, OpenID)` 只读定位用户(不存在视为已解绑,幂等成功);
|
|
4093
|
+
2. 按 `(用户, FamilyName)` 只读定位家庭(不存在视为已解绑,幂等成功);
|
|
4094
|
+
3. 解除设备与该家庭的绑定关系,异步下发 `delete_device` 消息;解绑路径不校验设备存在性,允许设备已删除时清理残留绑定关系。
|
|
4095
|
+
"""
|
|
4096
|
+
|
|
4097
|
+
kwargs = {}
|
|
4098
|
+
kwargs["action"] = "RevokeBindUserDevice"
|
|
4099
|
+
kwargs["params"] = request._serialize()
|
|
4100
|
+
kwargs["resp_cls"] = models.RevokeBindUserDeviceResponse
|
|
4101
|
+
kwargs["headers"] = request.headers
|
|
4102
|
+
kwargs["opts"] = opts or {}
|
|
4103
|
+
|
|
4104
|
+
return await self.call_and_deserialize(**kwargs)
|
|
4105
|
+
|
|
4014
4106
|
async def SearchPositionSpace(
|
|
4015
4107
|
self,
|
|
4016
4108
|
request: models.SearchPositionSpaceRequest,
|
|
@@ -2044,6 +2044,190 @@ class BindTWeTalkAgentResponse(AbstractModel):
|
|
|
2044
2044
|
self._RequestId = params.get("RequestId")
|
|
2045
2045
|
|
|
2046
2046
|
|
|
2047
|
+
class BindUserDeviceRequest(AbstractModel):
|
|
2048
|
+
r"""BindUserDevice请求参数结构体
|
|
2049
|
+
|
|
2050
|
+
"""
|
|
2051
|
+
|
|
2052
|
+
def __init__(self):
|
|
2053
|
+
r"""
|
|
2054
|
+
:param _AppKey: <p>应用 AppKey,用于解析 IotAppID 并完成签名校验</p>
|
|
2055
|
+
:type AppKey: str
|
|
2056
|
+
:param _ProductId: <p>产品 ID</p>
|
|
2057
|
+
:type ProductId: str
|
|
2058
|
+
:param _DeviceName: <p>设备名(禁止使用虚拟设备名 ~virtualDev)</p>
|
|
2059
|
+
:type DeviceName: str
|
|
2060
|
+
:param _OpenID: <p>用户 OpenID,用于定位 / 兜底创建 App 用户</p>
|
|
2061
|
+
:type OpenID: str
|
|
2062
|
+
:param _FamilyName: <p>家庭名,默认 default</p>
|
|
2063
|
+
:type FamilyName: str
|
|
2064
|
+
:param _RoomId: <p>房间 ID,默认 "0"</p>
|
|
2065
|
+
:type RoomId: str
|
|
2066
|
+
:param _NickName: <p>用户昵称(仅首次创建用户时使用)</p>
|
|
2067
|
+
:type NickName: str
|
|
2068
|
+
"""
|
|
2069
|
+
self._AppKey = None
|
|
2070
|
+
self._ProductId = None
|
|
2071
|
+
self._DeviceName = None
|
|
2072
|
+
self._OpenID = None
|
|
2073
|
+
self._FamilyName = None
|
|
2074
|
+
self._RoomId = None
|
|
2075
|
+
self._NickName = None
|
|
2076
|
+
|
|
2077
|
+
@property
|
|
2078
|
+
def AppKey(self):
|
|
2079
|
+
r"""<p>应用 AppKey,用于解析 IotAppID 并完成签名校验</p>
|
|
2080
|
+
:rtype: str
|
|
2081
|
+
"""
|
|
2082
|
+
return self._AppKey
|
|
2083
|
+
|
|
2084
|
+
@AppKey.setter
|
|
2085
|
+
def AppKey(self, AppKey):
|
|
2086
|
+
self._AppKey = AppKey
|
|
2087
|
+
|
|
2088
|
+
@property
|
|
2089
|
+
def ProductId(self):
|
|
2090
|
+
r"""<p>产品 ID</p>
|
|
2091
|
+
:rtype: str
|
|
2092
|
+
"""
|
|
2093
|
+
return self._ProductId
|
|
2094
|
+
|
|
2095
|
+
@ProductId.setter
|
|
2096
|
+
def ProductId(self, ProductId):
|
|
2097
|
+
self._ProductId = ProductId
|
|
2098
|
+
|
|
2099
|
+
@property
|
|
2100
|
+
def DeviceName(self):
|
|
2101
|
+
r"""<p>设备名(禁止使用虚拟设备名 ~virtualDev)</p>
|
|
2102
|
+
:rtype: str
|
|
2103
|
+
"""
|
|
2104
|
+
return self._DeviceName
|
|
2105
|
+
|
|
2106
|
+
@DeviceName.setter
|
|
2107
|
+
def DeviceName(self, DeviceName):
|
|
2108
|
+
self._DeviceName = DeviceName
|
|
2109
|
+
|
|
2110
|
+
@property
|
|
2111
|
+
def OpenID(self):
|
|
2112
|
+
r"""<p>用户 OpenID,用于定位 / 兜底创建 App 用户</p>
|
|
2113
|
+
:rtype: str
|
|
2114
|
+
"""
|
|
2115
|
+
return self._OpenID
|
|
2116
|
+
|
|
2117
|
+
@OpenID.setter
|
|
2118
|
+
def OpenID(self, OpenID):
|
|
2119
|
+
self._OpenID = OpenID
|
|
2120
|
+
|
|
2121
|
+
@property
|
|
2122
|
+
def FamilyName(self):
|
|
2123
|
+
r"""<p>家庭名,默认 default</p>
|
|
2124
|
+
:rtype: str
|
|
2125
|
+
"""
|
|
2126
|
+
return self._FamilyName
|
|
2127
|
+
|
|
2128
|
+
@FamilyName.setter
|
|
2129
|
+
def FamilyName(self, FamilyName):
|
|
2130
|
+
self._FamilyName = FamilyName
|
|
2131
|
+
|
|
2132
|
+
@property
|
|
2133
|
+
def RoomId(self):
|
|
2134
|
+
r"""<p>房间 ID,默认 "0"</p>
|
|
2135
|
+
:rtype: str
|
|
2136
|
+
"""
|
|
2137
|
+
return self._RoomId
|
|
2138
|
+
|
|
2139
|
+
@RoomId.setter
|
|
2140
|
+
def RoomId(self, RoomId):
|
|
2141
|
+
self._RoomId = RoomId
|
|
2142
|
+
|
|
2143
|
+
@property
|
|
2144
|
+
def NickName(self):
|
|
2145
|
+
r"""<p>用户昵称(仅首次创建用户时使用)</p>
|
|
2146
|
+
:rtype: str
|
|
2147
|
+
"""
|
|
2148
|
+
return self._NickName
|
|
2149
|
+
|
|
2150
|
+
@NickName.setter
|
|
2151
|
+
def NickName(self, NickName):
|
|
2152
|
+
self._NickName = NickName
|
|
2153
|
+
|
|
2154
|
+
|
|
2155
|
+
def _deserialize(self, params):
|
|
2156
|
+
self._AppKey = params.get("AppKey")
|
|
2157
|
+
self._ProductId = params.get("ProductId")
|
|
2158
|
+
self._DeviceName = params.get("DeviceName")
|
|
2159
|
+
self._OpenID = params.get("OpenID")
|
|
2160
|
+
self._FamilyName = params.get("FamilyName")
|
|
2161
|
+
self._RoomId = params.get("RoomId")
|
|
2162
|
+
self._NickName = params.get("NickName")
|
|
2163
|
+
memeber_set = set(params.keys())
|
|
2164
|
+
for name, value in vars(self).items():
|
|
2165
|
+
property_name = name[1:]
|
|
2166
|
+
if property_name in memeber_set:
|
|
2167
|
+
memeber_set.remove(property_name)
|
|
2168
|
+
if len(memeber_set) > 0:
|
|
2169
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
2170
|
+
|
|
2171
|
+
|
|
2172
|
+
|
|
2173
|
+
class BindUserDeviceResponse(AbstractModel):
|
|
2174
|
+
r"""BindUserDevice返回参数结构体
|
|
2175
|
+
|
|
2176
|
+
"""
|
|
2177
|
+
|
|
2178
|
+
def __init__(self):
|
|
2179
|
+
r"""
|
|
2180
|
+
:param _UserID: <p>用户 UserID(已存在则复用)</p>
|
|
2181
|
+
:type UserID: str
|
|
2182
|
+
:param _FamilyId: <p>家庭 ID(已存在则复用)</p>
|
|
2183
|
+
:type FamilyId: str
|
|
2184
|
+
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
2185
|
+
:type RequestId: str
|
|
2186
|
+
"""
|
|
2187
|
+
self._UserID = None
|
|
2188
|
+
self._FamilyId = None
|
|
2189
|
+
self._RequestId = None
|
|
2190
|
+
|
|
2191
|
+
@property
|
|
2192
|
+
def UserID(self):
|
|
2193
|
+
r"""<p>用户 UserID(已存在则复用)</p>
|
|
2194
|
+
:rtype: str
|
|
2195
|
+
"""
|
|
2196
|
+
return self._UserID
|
|
2197
|
+
|
|
2198
|
+
@UserID.setter
|
|
2199
|
+
def UserID(self, UserID):
|
|
2200
|
+
self._UserID = UserID
|
|
2201
|
+
|
|
2202
|
+
@property
|
|
2203
|
+
def FamilyId(self):
|
|
2204
|
+
r"""<p>家庭 ID(已存在则复用)</p>
|
|
2205
|
+
:rtype: str
|
|
2206
|
+
"""
|
|
2207
|
+
return self._FamilyId
|
|
2208
|
+
|
|
2209
|
+
@FamilyId.setter
|
|
2210
|
+
def FamilyId(self, FamilyId):
|
|
2211
|
+
self._FamilyId = FamilyId
|
|
2212
|
+
|
|
2213
|
+
@property
|
|
2214
|
+
def RequestId(self):
|
|
2215
|
+
r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
2216
|
+
:rtype: str
|
|
2217
|
+
"""
|
|
2218
|
+
return self._RequestId
|
|
2219
|
+
|
|
2220
|
+
@RequestId.setter
|
|
2221
|
+
def RequestId(self, RequestId):
|
|
2222
|
+
self._RequestId = RequestId
|
|
2223
|
+
|
|
2224
|
+
|
|
2225
|
+
def _deserialize(self, params):
|
|
2226
|
+
self._UserID = params.get("UserID")
|
|
2227
|
+
self._FamilyId = params.get("FamilyId")
|
|
2228
|
+
self._RequestId = params.get("RequestId")
|
|
2229
|
+
|
|
2230
|
+
|
|
2047
2231
|
class CallDeviceActionAsyncRequest(AbstractModel):
|
|
2048
2232
|
r"""CallDeviceActionAsync请求参数结构体
|
|
2049
2233
|
|
|
@@ -2337,6 +2521,220 @@ class CallDeviceActionSyncResponse(AbstractModel):
|
|
|
2337
2521
|
self._RequestId = params.get("RequestId")
|
|
2338
2522
|
|
|
2339
2523
|
|
|
2524
|
+
class CallDeviceRRPCSyncRequest(AbstractModel):
|
|
2525
|
+
r"""CallDeviceRRPCSync请求参数结构体
|
|
2526
|
+
|
|
2527
|
+
"""
|
|
2528
|
+
|
|
2529
|
+
def __init__(self):
|
|
2530
|
+
r"""
|
|
2531
|
+
:param _ProductId: <p>产品 ID</p>
|
|
2532
|
+
:type ProductId: str
|
|
2533
|
+
:param _DeviceName: <p>设备名</p>
|
|
2534
|
+
:type DeviceName: str
|
|
2535
|
+
:param _Payload: <p>业务原始 payload,透传给设备</p>
|
|
2536
|
+
:type Payload: str
|
|
2537
|
+
:param _Encoding: <p>下行传输层编码标识;base64 时下发到 broker 的 payload 会做一次 base64 编码</p>
|
|
2538
|
+
:type Encoding: str
|
|
2539
|
+
:param _Topic: <p>自定义下行 topic;为空则用 <code>$iotrrpc/down/{ProductId}/{DeviceName}/{mid}</code></p>
|
|
2540
|
+
:type Topic: str
|
|
2541
|
+
:param _ReplyTopic: <p>自定义上行 topic 模板(支持通配符);可留空,留空时仅依赖 clientToken 关联 ack</p>
|
|
2542
|
+
:type ReplyTopic: str
|
|
2543
|
+
"""
|
|
2544
|
+
self._ProductId = None
|
|
2545
|
+
self._DeviceName = None
|
|
2546
|
+
self._Payload = None
|
|
2547
|
+
self._Encoding = None
|
|
2548
|
+
self._Topic = None
|
|
2549
|
+
self._ReplyTopic = None
|
|
2550
|
+
|
|
2551
|
+
@property
|
|
2552
|
+
def ProductId(self):
|
|
2553
|
+
r"""<p>产品 ID</p>
|
|
2554
|
+
:rtype: str
|
|
2555
|
+
"""
|
|
2556
|
+
return self._ProductId
|
|
2557
|
+
|
|
2558
|
+
@ProductId.setter
|
|
2559
|
+
def ProductId(self, ProductId):
|
|
2560
|
+
self._ProductId = ProductId
|
|
2561
|
+
|
|
2562
|
+
@property
|
|
2563
|
+
def DeviceName(self):
|
|
2564
|
+
r"""<p>设备名</p>
|
|
2565
|
+
:rtype: str
|
|
2566
|
+
"""
|
|
2567
|
+
return self._DeviceName
|
|
2568
|
+
|
|
2569
|
+
@DeviceName.setter
|
|
2570
|
+
def DeviceName(self, DeviceName):
|
|
2571
|
+
self._DeviceName = DeviceName
|
|
2572
|
+
|
|
2573
|
+
@property
|
|
2574
|
+
def Payload(self):
|
|
2575
|
+
r"""<p>业务原始 payload,透传给设备</p>
|
|
2576
|
+
:rtype: str
|
|
2577
|
+
"""
|
|
2578
|
+
return self._Payload
|
|
2579
|
+
|
|
2580
|
+
@Payload.setter
|
|
2581
|
+
def Payload(self, Payload):
|
|
2582
|
+
self._Payload = Payload
|
|
2583
|
+
|
|
2584
|
+
@property
|
|
2585
|
+
def Encoding(self):
|
|
2586
|
+
r"""<p>下行传输层编码标识;base64 时下发到 broker 的 payload 会做一次 base64 编码</p>
|
|
2587
|
+
:rtype: str
|
|
2588
|
+
"""
|
|
2589
|
+
return self._Encoding
|
|
2590
|
+
|
|
2591
|
+
@Encoding.setter
|
|
2592
|
+
def Encoding(self, Encoding):
|
|
2593
|
+
self._Encoding = Encoding
|
|
2594
|
+
|
|
2595
|
+
@property
|
|
2596
|
+
def Topic(self):
|
|
2597
|
+
r"""<p>自定义下行 topic;为空则用 <code>$iotrrpc/down/{ProductId}/{DeviceName}/{mid}</code></p>
|
|
2598
|
+
:rtype: str
|
|
2599
|
+
"""
|
|
2600
|
+
return self._Topic
|
|
2601
|
+
|
|
2602
|
+
@Topic.setter
|
|
2603
|
+
def Topic(self, Topic):
|
|
2604
|
+
self._Topic = Topic
|
|
2605
|
+
|
|
2606
|
+
@property
|
|
2607
|
+
def ReplyTopic(self):
|
|
2608
|
+
r"""<p>自定义上行 topic 模板(支持通配符);可留空,留空时仅依赖 clientToken 关联 ack</p>
|
|
2609
|
+
:rtype: str
|
|
2610
|
+
"""
|
|
2611
|
+
return self._ReplyTopic
|
|
2612
|
+
|
|
2613
|
+
@ReplyTopic.setter
|
|
2614
|
+
def ReplyTopic(self, ReplyTopic):
|
|
2615
|
+
self._ReplyTopic = ReplyTopic
|
|
2616
|
+
|
|
2617
|
+
|
|
2618
|
+
def _deserialize(self, params):
|
|
2619
|
+
self._ProductId = params.get("ProductId")
|
|
2620
|
+
self._DeviceName = params.get("DeviceName")
|
|
2621
|
+
self._Payload = params.get("Payload")
|
|
2622
|
+
self._Encoding = params.get("Encoding")
|
|
2623
|
+
self._Topic = params.get("Topic")
|
|
2624
|
+
self._ReplyTopic = params.get("ReplyTopic")
|
|
2625
|
+
memeber_set = set(params.keys())
|
|
2626
|
+
for name, value in vars(self).items():
|
|
2627
|
+
property_name = name[1:]
|
|
2628
|
+
if property_name in memeber_set:
|
|
2629
|
+
memeber_set.remove(property_name)
|
|
2630
|
+
if len(memeber_set) > 0:
|
|
2631
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
2632
|
+
|
|
2633
|
+
|
|
2634
|
+
|
|
2635
|
+
class CallDeviceRRPCSyncResponse(AbstractModel):
|
|
2636
|
+
r"""CallDeviceRRPCSync返回参数结构体
|
|
2637
|
+
|
|
2638
|
+
"""
|
|
2639
|
+
|
|
2640
|
+
def __init__(self):
|
|
2641
|
+
r"""
|
|
2642
|
+
:param _ClientToken: <p>平台为本次调用分配的关联 token(v2{instanceId}::{reqId} 形式)</p>
|
|
2643
|
+
:type ClientToken: str
|
|
2644
|
+
:param _Status: <p>调用状态</p>
|
|
2645
|
+
:type Status: str
|
|
2646
|
+
:param _MessageId: <p>平台分配的 messageID</p>
|
|
2647
|
+
:type MessageId: int
|
|
2648
|
+
:param _PayloadBase64: <p>设备回包原始字节的 base64 编码(仅 Status=Replied 有值)</p>
|
|
2649
|
+
:type PayloadBase64: str
|
|
2650
|
+
:param _ReplyTopic: <p>实际生效的 reply topic 模板(默认模式由平台生成,自定义模式为入参原值)</p>
|
|
2651
|
+
:type ReplyTopic: str
|
|
2652
|
+
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
2653
|
+
:type RequestId: str
|
|
2654
|
+
"""
|
|
2655
|
+
self._ClientToken = None
|
|
2656
|
+
self._Status = None
|
|
2657
|
+
self._MessageId = None
|
|
2658
|
+
self._PayloadBase64 = None
|
|
2659
|
+
self._ReplyTopic = None
|
|
2660
|
+
self._RequestId = None
|
|
2661
|
+
|
|
2662
|
+
@property
|
|
2663
|
+
def ClientToken(self):
|
|
2664
|
+
r"""<p>平台为本次调用分配的关联 token(v2{instanceId}::{reqId} 形式)</p>
|
|
2665
|
+
:rtype: str
|
|
2666
|
+
"""
|
|
2667
|
+
return self._ClientToken
|
|
2668
|
+
|
|
2669
|
+
@ClientToken.setter
|
|
2670
|
+
def ClientToken(self, ClientToken):
|
|
2671
|
+
self._ClientToken = ClientToken
|
|
2672
|
+
|
|
2673
|
+
@property
|
|
2674
|
+
def Status(self):
|
|
2675
|
+
r"""<p>调用状态</p>
|
|
2676
|
+
:rtype: str
|
|
2677
|
+
"""
|
|
2678
|
+
return self._Status
|
|
2679
|
+
|
|
2680
|
+
@Status.setter
|
|
2681
|
+
def Status(self, Status):
|
|
2682
|
+
self._Status = Status
|
|
2683
|
+
|
|
2684
|
+
@property
|
|
2685
|
+
def MessageId(self):
|
|
2686
|
+
r"""<p>平台分配的 messageID</p>
|
|
2687
|
+
:rtype: int
|
|
2688
|
+
"""
|
|
2689
|
+
return self._MessageId
|
|
2690
|
+
|
|
2691
|
+
@MessageId.setter
|
|
2692
|
+
def MessageId(self, MessageId):
|
|
2693
|
+
self._MessageId = MessageId
|
|
2694
|
+
|
|
2695
|
+
@property
|
|
2696
|
+
def PayloadBase64(self):
|
|
2697
|
+
r"""<p>设备回包原始字节的 base64 编码(仅 Status=Replied 有值)</p>
|
|
2698
|
+
:rtype: str
|
|
2699
|
+
"""
|
|
2700
|
+
return self._PayloadBase64
|
|
2701
|
+
|
|
2702
|
+
@PayloadBase64.setter
|
|
2703
|
+
def PayloadBase64(self, PayloadBase64):
|
|
2704
|
+
self._PayloadBase64 = PayloadBase64
|
|
2705
|
+
|
|
2706
|
+
@property
|
|
2707
|
+
def ReplyTopic(self):
|
|
2708
|
+
r"""<p>实际生效的 reply topic 模板(默认模式由平台生成,自定义模式为入参原值)</p>
|
|
2709
|
+
:rtype: str
|
|
2710
|
+
"""
|
|
2711
|
+
return self._ReplyTopic
|
|
2712
|
+
|
|
2713
|
+
@ReplyTopic.setter
|
|
2714
|
+
def ReplyTopic(self, ReplyTopic):
|
|
2715
|
+
self._ReplyTopic = ReplyTopic
|
|
2716
|
+
|
|
2717
|
+
@property
|
|
2718
|
+
def RequestId(self):
|
|
2719
|
+
r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
2720
|
+
:rtype: str
|
|
2721
|
+
"""
|
|
2722
|
+
return self._RequestId
|
|
2723
|
+
|
|
2724
|
+
@RequestId.setter
|
|
2725
|
+
def RequestId(self, RequestId):
|
|
2726
|
+
self._RequestId = RequestId
|
|
2727
|
+
|
|
2728
|
+
|
|
2729
|
+
def _deserialize(self, params):
|
|
2730
|
+
self._ClientToken = params.get("ClientToken")
|
|
2731
|
+
self._Status = params.get("Status")
|
|
2732
|
+
self._MessageId = params.get("MessageId")
|
|
2733
|
+
self._PayloadBase64 = params.get("PayloadBase64")
|
|
2734
|
+
self._ReplyTopic = params.get("ReplyTopic")
|
|
2735
|
+
self._RequestId = params.get("RequestId")
|
|
2736
|
+
|
|
2737
|
+
|
|
2340
2738
|
class CamTag(AbstractModel):
|
|
2341
2739
|
r"""标签数据结构
|
|
2342
2740
|
|
|
@@ -39115,6 +39513,130 @@ class ResumeWeCallDeviceResponse(AbstractModel):
|
|
|
39115
39513
|
self._RequestId = params.get("RequestId")
|
|
39116
39514
|
|
|
39117
39515
|
|
|
39516
|
+
class RevokeBindUserDeviceRequest(AbstractModel):
|
|
39517
|
+
r"""RevokeBindUserDevice请求参数结构体
|
|
39518
|
+
|
|
39519
|
+
"""
|
|
39520
|
+
|
|
39521
|
+
def __init__(self):
|
|
39522
|
+
r"""
|
|
39523
|
+
:param _AppKey: <p>应用 AppKey,用于解析 IotAppID 并完成签名校验</p>
|
|
39524
|
+
:type AppKey: str
|
|
39525
|
+
:param _ProductId: <p>产品 ID</p>
|
|
39526
|
+
:type ProductId: str
|
|
39527
|
+
:param _DeviceName: <p>设备名</p>
|
|
39528
|
+
:type DeviceName: str
|
|
39529
|
+
:param _OpenID: <p>用户 OpenID(仅只读定位,不会创建)</p>
|
|
39530
|
+
:type OpenID: str
|
|
39531
|
+
:param _FamilyName: <p>家庭名,默认 default</p>
|
|
39532
|
+
:type FamilyName: str
|
|
39533
|
+
"""
|
|
39534
|
+
self._AppKey = None
|
|
39535
|
+
self._ProductId = None
|
|
39536
|
+
self._DeviceName = None
|
|
39537
|
+
self._OpenID = None
|
|
39538
|
+
self._FamilyName = None
|
|
39539
|
+
|
|
39540
|
+
@property
|
|
39541
|
+
def AppKey(self):
|
|
39542
|
+
r"""<p>应用 AppKey,用于解析 IotAppID 并完成签名校验</p>
|
|
39543
|
+
:rtype: str
|
|
39544
|
+
"""
|
|
39545
|
+
return self._AppKey
|
|
39546
|
+
|
|
39547
|
+
@AppKey.setter
|
|
39548
|
+
def AppKey(self, AppKey):
|
|
39549
|
+
self._AppKey = AppKey
|
|
39550
|
+
|
|
39551
|
+
@property
|
|
39552
|
+
def ProductId(self):
|
|
39553
|
+
r"""<p>产品 ID</p>
|
|
39554
|
+
:rtype: str
|
|
39555
|
+
"""
|
|
39556
|
+
return self._ProductId
|
|
39557
|
+
|
|
39558
|
+
@ProductId.setter
|
|
39559
|
+
def ProductId(self, ProductId):
|
|
39560
|
+
self._ProductId = ProductId
|
|
39561
|
+
|
|
39562
|
+
@property
|
|
39563
|
+
def DeviceName(self):
|
|
39564
|
+
r"""<p>设备名</p>
|
|
39565
|
+
:rtype: str
|
|
39566
|
+
"""
|
|
39567
|
+
return self._DeviceName
|
|
39568
|
+
|
|
39569
|
+
@DeviceName.setter
|
|
39570
|
+
def DeviceName(self, DeviceName):
|
|
39571
|
+
self._DeviceName = DeviceName
|
|
39572
|
+
|
|
39573
|
+
@property
|
|
39574
|
+
def OpenID(self):
|
|
39575
|
+
r"""<p>用户 OpenID(仅只读定位,不会创建)</p>
|
|
39576
|
+
:rtype: str
|
|
39577
|
+
"""
|
|
39578
|
+
return self._OpenID
|
|
39579
|
+
|
|
39580
|
+
@OpenID.setter
|
|
39581
|
+
def OpenID(self, OpenID):
|
|
39582
|
+
self._OpenID = OpenID
|
|
39583
|
+
|
|
39584
|
+
@property
|
|
39585
|
+
def FamilyName(self):
|
|
39586
|
+
r"""<p>家庭名,默认 default</p>
|
|
39587
|
+
:rtype: str
|
|
39588
|
+
"""
|
|
39589
|
+
return self._FamilyName
|
|
39590
|
+
|
|
39591
|
+
@FamilyName.setter
|
|
39592
|
+
def FamilyName(self, FamilyName):
|
|
39593
|
+
self._FamilyName = FamilyName
|
|
39594
|
+
|
|
39595
|
+
|
|
39596
|
+
def _deserialize(self, params):
|
|
39597
|
+
self._AppKey = params.get("AppKey")
|
|
39598
|
+
self._ProductId = params.get("ProductId")
|
|
39599
|
+
self._DeviceName = params.get("DeviceName")
|
|
39600
|
+
self._OpenID = params.get("OpenID")
|
|
39601
|
+
self._FamilyName = params.get("FamilyName")
|
|
39602
|
+
memeber_set = set(params.keys())
|
|
39603
|
+
for name, value in vars(self).items():
|
|
39604
|
+
property_name = name[1:]
|
|
39605
|
+
if property_name in memeber_set:
|
|
39606
|
+
memeber_set.remove(property_name)
|
|
39607
|
+
if len(memeber_set) > 0:
|
|
39608
|
+
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
|
|
39609
|
+
|
|
39610
|
+
|
|
39611
|
+
|
|
39612
|
+
class RevokeBindUserDeviceResponse(AbstractModel):
|
|
39613
|
+
r"""RevokeBindUserDevice返回参数结构体
|
|
39614
|
+
|
|
39615
|
+
"""
|
|
39616
|
+
|
|
39617
|
+
def __init__(self):
|
|
39618
|
+
r"""
|
|
39619
|
+
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
39620
|
+
:type RequestId: str
|
|
39621
|
+
"""
|
|
39622
|
+
self._RequestId = None
|
|
39623
|
+
|
|
39624
|
+
@property
|
|
39625
|
+
def RequestId(self):
|
|
39626
|
+
r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
|
|
39627
|
+
:rtype: str
|
|
39628
|
+
"""
|
|
39629
|
+
return self._RequestId
|
|
39630
|
+
|
|
39631
|
+
@RequestId.setter
|
|
39632
|
+
def RequestId(self, RequestId):
|
|
39633
|
+
self._RequestId = RequestId
|
|
39634
|
+
|
|
39635
|
+
|
|
39636
|
+
def _deserialize(self, params):
|
|
39637
|
+
self._RequestId = params.get("RequestId")
|
|
39638
|
+
|
|
39639
|
+
|
|
39118
39640
|
class SearchKeyword(AbstractModel):
|
|
39119
39641
|
r"""搜索关键词
|
|
39120
39642
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: tencentcloud-sdk-python-iotexplorer
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.135
|
|
4
4
|
Summary: Tencent Cloud Iotexplorer 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.
|
|
18
|
+
Requires-Dist: tencentcloud-sdk-python-common<4.0.0,>=3.1.135
|
|
19
19
|
|
|
20
20
|
============================
|
|
21
21
|
Tencent Cloud SDK for Python
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tencentcloud-sdk-python-common<4.0.0,>=3.1.135
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
tencentcloud-sdk-python-common<4.0.0,>=3.1.134
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|