antchain-bot 1.12.35__py3-none-any.whl → 1.12.48__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.
@@ -696,6 +696,42 @@ class DataVerifyFailureData(TeaModel):
696
696
  return self
697
697
 
698
698
 
699
+ class TripDuration(TeaModel):
700
+ def __init__(
701
+ self,
702
+ value: str = None,
703
+ unit: str = None,
704
+ ):
705
+ # 时间
706
+ self.value = value
707
+ # 时间单位
708
+ self.unit = unit
709
+
710
+ def validate(self):
711
+ self.validate_required(self.value, 'value')
712
+ self.validate_required(self.unit, 'unit')
713
+
714
+ def to_map(self):
715
+ _map = super().to_map()
716
+ if _map is not None:
717
+ return _map
718
+
719
+ result = dict()
720
+ if self.value is not None:
721
+ result['value'] = self.value
722
+ if self.unit is not None:
723
+ result['unit'] = self.unit
724
+ return result
725
+
726
+ def from_map(self, m: dict = None):
727
+ m = m or dict()
728
+ if m.get('value') is not None:
729
+ self.value = m.get('value')
730
+ if m.get('unit') is not None:
731
+ self.unit = m.get('unit')
732
+ return self
733
+
734
+
699
735
  class PermissionedTenantModel(TeaModel):
700
736
  def __init__(
701
737
  self,
@@ -5307,6 +5343,117 @@ class IotbasicDeviceModelFixedAttributeInfo(TeaModel):
5307
5343
  return self
5308
5344
 
5309
5345
 
5346
+ class TripDetail(TeaModel):
5347
+ def __init__(
5348
+ self,
5349
+ trip_id: str = None,
5350
+ start_time: int = None,
5351
+ end_time: int = None,
5352
+ mileage: str = None,
5353
+ duration: TripDuration = None,
5354
+ max_speed: str = None,
5355
+ avg_speed: str = None,
5356
+ first_address: str = None,
5357
+ last_address: str = None,
5358
+ first_location_time: int = None,
5359
+ last_location_time: int = None,
5360
+ ):
5361
+ # 行程id
5362
+ self.trip_id = trip_id
5363
+ # 开始时间
5364
+ self.start_time = start_time
5365
+ # 结束时间
5366
+ self.end_time = end_time
5367
+ # 行驶里程
5368
+ self.mileage = mileage
5369
+ # 单次用时
5370
+ self.duration = duration
5371
+ # 最高速度
5372
+ self.max_speed = max_speed
5373
+ # 平均速度
5374
+ self.avg_speed = avg_speed
5375
+ # 开始地址
5376
+ self.first_address = first_address
5377
+ # 结束地址
5378
+ self.last_address = last_address
5379
+ # 最开始定位时间
5380
+ self.first_location_time = first_location_time
5381
+ # 最后结束定位时间
5382
+ self.last_location_time = last_location_time
5383
+
5384
+ def validate(self):
5385
+ self.validate_required(self.trip_id, 'trip_id')
5386
+ self.validate_required(self.start_time, 'start_time')
5387
+ self.validate_required(self.end_time, 'end_time')
5388
+ self.validate_required(self.mileage, 'mileage')
5389
+ self.validate_required(self.duration, 'duration')
5390
+ if self.duration:
5391
+ self.duration.validate()
5392
+ self.validate_required(self.max_speed, 'max_speed')
5393
+ self.validate_required(self.avg_speed, 'avg_speed')
5394
+ self.validate_required(self.first_address, 'first_address')
5395
+ self.validate_required(self.last_address, 'last_address')
5396
+ self.validate_required(self.first_location_time, 'first_location_time')
5397
+ self.validate_required(self.last_location_time, 'last_location_time')
5398
+
5399
+ def to_map(self):
5400
+ _map = super().to_map()
5401
+ if _map is not None:
5402
+ return _map
5403
+
5404
+ result = dict()
5405
+ if self.trip_id is not None:
5406
+ result['trip_id'] = self.trip_id
5407
+ if self.start_time is not None:
5408
+ result['start_time'] = self.start_time
5409
+ if self.end_time is not None:
5410
+ result['end_time'] = self.end_time
5411
+ if self.mileage is not None:
5412
+ result['mileage'] = self.mileage
5413
+ if self.duration is not None:
5414
+ result['duration'] = self.duration.to_map()
5415
+ if self.max_speed is not None:
5416
+ result['max_speed'] = self.max_speed
5417
+ if self.avg_speed is not None:
5418
+ result['avg_speed'] = self.avg_speed
5419
+ if self.first_address is not None:
5420
+ result['first_address'] = self.first_address
5421
+ if self.last_address is not None:
5422
+ result['last_address'] = self.last_address
5423
+ if self.first_location_time is not None:
5424
+ result['first_location_time'] = self.first_location_time
5425
+ if self.last_location_time is not None:
5426
+ result['last_location_time'] = self.last_location_time
5427
+ return result
5428
+
5429
+ def from_map(self, m: dict = None):
5430
+ m = m or dict()
5431
+ if m.get('trip_id') is not None:
5432
+ self.trip_id = m.get('trip_id')
5433
+ if m.get('start_time') is not None:
5434
+ self.start_time = m.get('start_time')
5435
+ if m.get('end_time') is not None:
5436
+ self.end_time = m.get('end_time')
5437
+ if m.get('mileage') is not None:
5438
+ self.mileage = m.get('mileage')
5439
+ if m.get('duration') is not None:
5440
+ temp_model = TripDuration()
5441
+ self.duration = temp_model.from_map(m['duration'])
5442
+ if m.get('max_speed') is not None:
5443
+ self.max_speed = m.get('max_speed')
5444
+ if m.get('avg_speed') is not None:
5445
+ self.avg_speed = m.get('avg_speed')
5446
+ if m.get('first_address') is not None:
5447
+ self.first_address = m.get('first_address')
5448
+ if m.get('last_address') is not None:
5449
+ self.last_address = m.get('last_address')
5450
+ if m.get('first_location_time') is not None:
5451
+ self.first_location_time = m.get('first_location_time')
5452
+ if m.get('last_location_time') is not None:
5453
+ self.last_location_time = m.get('last_location_time')
5454
+ return self
5455
+
5456
+
5310
5457
  class XrTicketPoolFailList(TeaModel):
5311
5458
  def __init__(
5312
5459
  self,
@@ -5855,27 +6002,27 @@ class JtMedia(TeaModel):
5855
6002
  class TripStatistics(TeaModel):
5856
6003
  def __init__(
5857
6004
  self,
5858
- trip_day: str = None,
5859
- total_distance: int = None,
5860
- total_duration: int = None,
5861
- trip_count: int = None,
6005
+ total_mileage: str = None,
6006
+ total_duration: TripDuration = None,
6007
+ total_count: int = None,
6008
+ period_code: int = None,
5862
6009
  ):
5863
- # 行驶天数
5864
- self.trip_day = trip_day
5865
6010
  # 总里程
5866
- self.total_distance = total_distance
5867
- # 总用时
6011
+ self.total_mileage = total_mileage
6012
+ # 时间体
5868
6013
  self.total_duration = total_duration
5869
- # 行驶次数
5870
- self.trip_count = trip_count
6014
+ # 总次数
6015
+ self.total_count = total_count
6016
+ # 时期码
6017
+ self.period_code = period_code
5871
6018
 
5872
6019
  def validate(self):
5873
- self.validate_required(self.trip_day, 'trip_day')
5874
- if self.trip_day is not None:
5875
- self.validate_pattern(self.trip_day, 'trip_day', '\\d{4}[-]\\d{1,2}[-]\\d{1,2}[T]\\d{2}:\\d{2}:\\d{2}([Z]|([\\.]\\d{1,9})?[\\+]\\d{2}[\\:]?\\d{2})')
5876
- self.validate_required(self.total_distance, 'total_distance')
6020
+ self.validate_required(self.total_mileage, 'total_mileage')
5877
6021
  self.validate_required(self.total_duration, 'total_duration')
5878
- self.validate_required(self.trip_count, 'trip_count')
6022
+ if self.total_duration:
6023
+ self.total_duration.validate()
6024
+ self.validate_required(self.total_count, 'total_count')
6025
+ self.validate_required(self.period_code, 'period_code')
5879
6026
 
5880
6027
  def to_map(self):
5881
6028
  _map = super().to_map()
@@ -5883,26 +6030,27 @@ class TripStatistics(TeaModel):
5883
6030
  return _map
5884
6031
 
5885
6032
  result = dict()
5886
- if self.trip_day is not None:
5887
- result['trip_day'] = self.trip_day
5888
- if self.total_distance is not None:
5889
- result['total_distance'] = self.total_distance
6033
+ if self.total_mileage is not None:
6034
+ result['total_mileage'] = self.total_mileage
5890
6035
  if self.total_duration is not None:
5891
- result['total_duration'] = self.total_duration
5892
- if self.trip_count is not None:
5893
- result['trip_count'] = self.trip_count
6036
+ result['total_duration'] = self.total_duration.to_map()
6037
+ if self.total_count is not None:
6038
+ result['total_count'] = self.total_count
6039
+ if self.period_code is not None:
6040
+ result['period_code'] = self.period_code
5894
6041
  return result
5895
6042
 
5896
6043
  def from_map(self, m: dict = None):
5897
6044
  m = m or dict()
5898
- if m.get('trip_day') is not None:
5899
- self.trip_day = m.get('trip_day')
5900
- if m.get('total_distance') is not None:
5901
- self.total_distance = m.get('total_distance')
6045
+ if m.get('total_mileage') is not None:
6046
+ self.total_mileage = m.get('total_mileage')
5902
6047
  if m.get('total_duration') is not None:
5903
- self.total_duration = m.get('total_duration')
5904
- if m.get('trip_count') is not None:
5905
- self.trip_count = m.get('trip_count')
6048
+ temp_model = TripDuration()
6049
+ self.total_duration = temp_model.from_map(m['total_duration'])
6050
+ if m.get('total_count') is not None:
6051
+ self.total_count = m.get('total_count')
6052
+ if m.get('period_code') is not None:
6053
+ self.period_code = m.get('period_code')
5906
6054
  return self
5907
6055
 
5908
6056
 
@@ -28904,76 +29052,798 @@ class RegisterCarkeyscorpCustomerResponse(TeaModel):
28904
29052
  return self
28905
29053
 
28906
29054
 
28907
- class CreateElectrocarApplycarkeycertificateRequest(TeaModel):
29055
+ class CreateElectrocarApplycarkeycertificateRequest(TeaModel):
29056
+ def __init__(
29057
+ self,
29058
+ auth_token: str = None,
29059
+ product_instance_id: str = None,
29060
+ request_id: str = None,
29061
+ online_flag: str = None,
29062
+ device_type: str = None,
29063
+ cred_type: str = None,
29064
+ brand_id: str = None,
29065
+ generate_code: str = None,
29066
+ protocol_type: str = None,
29067
+ key_less: str = None,
29068
+ mac: str = None,
29069
+ ble_name: str = None,
29070
+ device_sn: str = None,
29071
+ access_scene: str = None,
29072
+ aliyun_iot_enabled: bool = None,
29073
+ channel: str = None,
29074
+ ):
29075
+ # OAuth模式下的授权token
29076
+ self.auth_token = auth_token
29077
+ self.product_instance_id = product_instance_id
29078
+ # 请求唯一标识Id 调用方生成,需要保证唯一性
29079
+ self.request_id = request_id
29080
+ # 模式 默认为false,产线申请为true
29081
+ self.online_flag = online_flag
29082
+ # 设备类型 默认为4-芯片SE,联系技术配置具体的设备类型
29083
+ self.device_type = device_type
29084
+ # 凭证类型,默认se_dk_cred,如果是MCU,则mcu_dk_cred
29085
+ self.cred_type = cred_type
29086
+ # 品牌Id
29087
+ self.brand_id = brand_id
29088
+ # 凭证内容
29089
+ # 集合结构[0,1,2,3]
29090
+ # 0:IIFAA根密钥
29091
+ # 1:企业业务密钥
29092
+ # 2:设备密钥
29093
+ # 3:无感控车
29094
+ # 如果此字段为空,则默认生成0,1,2
29095
+ self.generate_code = generate_code
29096
+ # 协议类型
29097
+ # 蓝牙:ble
29098
+ # 4G: 4G
29099
+ # 蓝牙+4G:ble|4G
29100
+ # 如果此字段为空,默认为ble
29101
+ self.protocol_type = protocol_type
29102
+ # 无感控车设备端数据,当generateCode包含3的时候,此字段不能为空
29103
+ self.key_less = key_less
29104
+ # mac
29105
+ self.mac = mac
29106
+ # ble_name
29107
+ self.ble_name = ble_name
29108
+ # 设备sn
29109
+ self.device_sn = device_sn
29110
+ # 接入场景码
29111
+ self.access_scene = access_scene
29112
+ # 标识是否启用了阿里云物联网平台
29113
+ self.aliyun_iot_enabled = aliyun_iot_enabled
29114
+ # 设备接入 4g 渠道
29115
+ self.channel = channel
29116
+
29117
+ def validate(self):
29118
+ self.validate_required(self.request_id, 'request_id')
29119
+ self.validate_required(self.brand_id, 'brand_id')
29120
+ self.validate_required(self.protocol_type, 'protocol_type')
29121
+ self.validate_required(self.mac, 'mac')
29122
+ self.validate_required(self.ble_name, 'ble_name')
29123
+ self.validate_required(self.device_sn, 'device_sn')
29124
+ self.validate_required(self.access_scene, 'access_scene')
29125
+
29126
+ def to_map(self):
29127
+ _map = super().to_map()
29128
+ if _map is not None:
29129
+ return _map
29130
+
29131
+ result = dict()
29132
+ if self.auth_token is not None:
29133
+ result['auth_token'] = self.auth_token
29134
+ if self.product_instance_id is not None:
29135
+ result['product_instance_id'] = self.product_instance_id
29136
+ if self.request_id is not None:
29137
+ result['request_id'] = self.request_id
29138
+ if self.online_flag is not None:
29139
+ result['online_flag'] = self.online_flag
29140
+ if self.device_type is not None:
29141
+ result['device_type'] = self.device_type
29142
+ if self.cred_type is not None:
29143
+ result['cred_type'] = self.cred_type
29144
+ if self.brand_id is not None:
29145
+ result['brand_id'] = self.brand_id
29146
+ if self.generate_code is not None:
29147
+ result['generate_code'] = self.generate_code
29148
+ if self.protocol_type is not None:
29149
+ result['protocol_type'] = self.protocol_type
29150
+ if self.key_less is not None:
29151
+ result['key_less'] = self.key_less
29152
+ if self.mac is not None:
29153
+ result['mac'] = self.mac
29154
+ if self.ble_name is not None:
29155
+ result['ble_name'] = self.ble_name
29156
+ if self.device_sn is not None:
29157
+ result['device_sn'] = self.device_sn
29158
+ if self.access_scene is not None:
29159
+ result['access_scene'] = self.access_scene
29160
+ if self.aliyun_iot_enabled is not None:
29161
+ result['aliyun_iot_enabled'] = self.aliyun_iot_enabled
29162
+ if self.channel is not None:
29163
+ result['channel'] = self.channel
29164
+ return result
29165
+
29166
+ def from_map(self, m: dict = None):
29167
+ m = m or dict()
29168
+ if m.get('auth_token') is not None:
29169
+ self.auth_token = m.get('auth_token')
29170
+ if m.get('product_instance_id') is not None:
29171
+ self.product_instance_id = m.get('product_instance_id')
29172
+ if m.get('request_id') is not None:
29173
+ self.request_id = m.get('request_id')
29174
+ if m.get('online_flag') is not None:
29175
+ self.online_flag = m.get('online_flag')
29176
+ if m.get('device_type') is not None:
29177
+ self.device_type = m.get('device_type')
29178
+ if m.get('cred_type') is not None:
29179
+ self.cred_type = m.get('cred_type')
29180
+ if m.get('brand_id') is not None:
29181
+ self.brand_id = m.get('brand_id')
29182
+ if m.get('generate_code') is not None:
29183
+ self.generate_code = m.get('generate_code')
29184
+ if m.get('protocol_type') is not None:
29185
+ self.protocol_type = m.get('protocol_type')
29186
+ if m.get('key_less') is not None:
29187
+ self.key_less = m.get('key_less')
29188
+ if m.get('mac') is not None:
29189
+ self.mac = m.get('mac')
29190
+ if m.get('ble_name') is not None:
29191
+ self.ble_name = m.get('ble_name')
29192
+ if m.get('device_sn') is not None:
29193
+ self.device_sn = m.get('device_sn')
29194
+ if m.get('access_scene') is not None:
29195
+ self.access_scene = m.get('access_scene')
29196
+ if m.get('aliyun_iot_enabled') is not None:
29197
+ self.aliyun_iot_enabled = m.get('aliyun_iot_enabled')
29198
+ if m.get('channel') is not None:
29199
+ self.channel = m.get('channel')
29200
+ return self
29201
+
29202
+
29203
+ class CreateElectrocarApplycarkeycertificateResponse(TeaModel):
29204
+ def __init__(
29205
+ self,
29206
+ req_msg_id: str = None,
29207
+ result_code: str = None,
29208
+ result_msg: str = None,
29209
+ tuid: str = None,
29210
+ device_did: str = None,
29211
+ mqtt_content: str = None,
29212
+ car_key_init_data: str = None,
29213
+ success: bool = None,
29214
+ ):
29215
+ # 请求唯一ID,用于链路跟踪和问题排查
29216
+ self.req_msg_id = req_msg_id
29217
+ # 结果码,一般OK表示调用成功
29218
+ self.result_code = result_code
29219
+ # 异常信息的文本描述
29220
+ self.result_msg = result_msg
29221
+ # sn
29222
+ self.tuid = tuid
29223
+ # deviceDid
29224
+ self.device_did = device_did
29225
+ # 三元组+连接实例id
29226
+ self.mqtt_content = mqtt_content
29227
+ # 凭证接口返回参数
29228
+ self.car_key_init_data = car_key_init_data
29229
+ # 成功/失败
29230
+ self.success = success
29231
+
29232
+ def validate(self):
29233
+ pass
29234
+
29235
+ def to_map(self):
29236
+ _map = super().to_map()
29237
+ if _map is not None:
29238
+ return _map
29239
+
29240
+ result = dict()
29241
+ if self.req_msg_id is not None:
29242
+ result['req_msg_id'] = self.req_msg_id
29243
+ if self.result_code is not None:
29244
+ result['result_code'] = self.result_code
29245
+ if self.result_msg is not None:
29246
+ result['result_msg'] = self.result_msg
29247
+ if self.tuid is not None:
29248
+ result['tuid'] = self.tuid
29249
+ if self.device_did is not None:
29250
+ result['device_did'] = self.device_did
29251
+ if self.mqtt_content is not None:
29252
+ result['mqtt_content'] = self.mqtt_content
29253
+ if self.car_key_init_data is not None:
29254
+ result['car_key_init_data'] = self.car_key_init_data
29255
+ if self.success is not None:
29256
+ result['success'] = self.success
29257
+ return result
29258
+
29259
+ def from_map(self, m: dict = None):
29260
+ m = m or dict()
29261
+ if m.get('req_msg_id') is not None:
29262
+ self.req_msg_id = m.get('req_msg_id')
29263
+ if m.get('result_code') is not None:
29264
+ self.result_code = m.get('result_code')
29265
+ if m.get('result_msg') is not None:
29266
+ self.result_msg = m.get('result_msg')
29267
+ if m.get('tuid') is not None:
29268
+ self.tuid = m.get('tuid')
29269
+ if m.get('device_did') is not None:
29270
+ self.device_did = m.get('device_did')
29271
+ if m.get('mqtt_content') is not None:
29272
+ self.mqtt_content = m.get('mqtt_content')
29273
+ if m.get('car_key_init_data') is not None:
29274
+ self.car_key_init_data = m.get('car_key_init_data')
29275
+ if m.get('success') is not None:
29276
+ self.success = m.get('success')
29277
+ return self
29278
+
29279
+
29280
+ class PushDeviceAudioRequest(TeaModel):
29281
+ def __init__(
29282
+ self,
29283
+ auth_token: str = None,
29284
+ product_instance_id: str = None,
29285
+ device_sn: str = None,
29286
+ device_corp: str = None,
29287
+ topic_identifer: str = None,
29288
+ mesage_type: str = None,
29289
+ message_content: str = None,
29290
+ biz_scene: str = None,
29291
+ device_did: str = None,
29292
+ tuid: str = None,
29293
+ ):
29294
+ # OAuth模式下的授权token
29295
+ self.auth_token = auth_token
29296
+ self.product_instance_id = product_instance_id
29297
+ # 设备序列化
29298
+ self.device_sn = device_sn
29299
+ # 设备厂商
29300
+ self.device_corp = device_corp
29301
+ # 推送消息主题
29302
+ self.topic_identifer = topic_identifer
29303
+ # 推送消息类型
29304
+ self.mesage_type = mesage_type
29305
+ # 消息内容
29306
+ self.message_content = message_content
29307
+ # 业务场景-项目
29308
+ self.biz_scene = biz_scene
29309
+ # 设备唯一ID
29310
+ self.device_did = device_did
29311
+ # kyt硬件唯一ID
29312
+ self.tuid = tuid
29313
+
29314
+ def validate(self):
29315
+ self.validate_required(self.topic_identifer, 'topic_identifer')
29316
+ self.validate_required(self.mesage_type, 'mesage_type')
29317
+ self.validate_required(self.message_content, 'message_content')
29318
+ self.validate_required(self.biz_scene, 'biz_scene')
29319
+
29320
+ def to_map(self):
29321
+ _map = super().to_map()
29322
+ if _map is not None:
29323
+ return _map
29324
+
29325
+ result = dict()
29326
+ if self.auth_token is not None:
29327
+ result['auth_token'] = self.auth_token
29328
+ if self.product_instance_id is not None:
29329
+ result['product_instance_id'] = self.product_instance_id
29330
+ if self.device_sn is not None:
29331
+ result['device_sn'] = self.device_sn
29332
+ if self.device_corp is not None:
29333
+ result['device_corp'] = self.device_corp
29334
+ if self.topic_identifer is not None:
29335
+ result['topic_identifer'] = self.topic_identifer
29336
+ if self.mesage_type is not None:
29337
+ result['mesage_type'] = self.mesage_type
29338
+ if self.message_content is not None:
29339
+ result['message_content'] = self.message_content
29340
+ if self.biz_scene is not None:
29341
+ result['biz_scene'] = self.biz_scene
29342
+ if self.device_did is not None:
29343
+ result['device_did'] = self.device_did
29344
+ if self.tuid is not None:
29345
+ result['tuid'] = self.tuid
29346
+ return result
29347
+
29348
+ def from_map(self, m: dict = None):
29349
+ m = m or dict()
29350
+ if m.get('auth_token') is not None:
29351
+ self.auth_token = m.get('auth_token')
29352
+ if m.get('product_instance_id') is not None:
29353
+ self.product_instance_id = m.get('product_instance_id')
29354
+ if m.get('device_sn') is not None:
29355
+ self.device_sn = m.get('device_sn')
29356
+ if m.get('device_corp') is not None:
29357
+ self.device_corp = m.get('device_corp')
29358
+ if m.get('topic_identifer') is not None:
29359
+ self.topic_identifer = m.get('topic_identifer')
29360
+ if m.get('mesage_type') is not None:
29361
+ self.mesage_type = m.get('mesage_type')
29362
+ if m.get('message_content') is not None:
29363
+ self.message_content = m.get('message_content')
29364
+ if m.get('biz_scene') is not None:
29365
+ self.biz_scene = m.get('biz_scene')
29366
+ if m.get('device_did') is not None:
29367
+ self.device_did = m.get('device_did')
29368
+ if m.get('tuid') is not None:
29369
+ self.tuid = m.get('tuid')
29370
+ return self
29371
+
29372
+
29373
+ class PushDeviceAudioResponse(TeaModel):
29374
+ def __init__(
29375
+ self,
29376
+ req_msg_id: str = None,
29377
+ result_code: str = None,
29378
+ result_msg: str = None,
29379
+ success: bool = None,
29380
+ message_id: str = None,
29381
+ result: str = None,
29382
+ ):
29383
+ # 请求唯一ID,用于链路跟踪和问题排查
29384
+ self.req_msg_id = req_msg_id
29385
+ # 结果码,一般OK表示调用成功
29386
+ self.result_code = result_code
29387
+ # 异常信息的文本描述
29388
+ self.result_msg = result_msg
29389
+ # 调用结果
29390
+ self.success = success
29391
+ # 云端向设备下发服务调用的消息ID
29392
+ self.message_id = message_id
29393
+ # 指令执行 响应结果
29394
+ self.result = result
29395
+
29396
+ def validate(self):
29397
+ pass
29398
+
29399
+ def to_map(self):
29400
+ _map = super().to_map()
29401
+ if _map is not None:
29402
+ return _map
29403
+
29404
+ result = dict()
29405
+ if self.req_msg_id is not None:
29406
+ result['req_msg_id'] = self.req_msg_id
29407
+ if self.result_code is not None:
29408
+ result['result_code'] = self.result_code
29409
+ if self.result_msg is not None:
29410
+ result['result_msg'] = self.result_msg
29411
+ if self.success is not None:
29412
+ result['success'] = self.success
29413
+ if self.message_id is not None:
29414
+ result['message_id'] = self.message_id
29415
+ if self.result is not None:
29416
+ result['result'] = self.result
29417
+ return result
29418
+
29419
+ def from_map(self, m: dict = None):
29420
+ m = m or dict()
29421
+ if m.get('req_msg_id') is not None:
29422
+ self.req_msg_id = m.get('req_msg_id')
29423
+ if m.get('result_code') is not None:
29424
+ self.result_code = m.get('result_code')
29425
+ if m.get('result_msg') is not None:
29426
+ self.result_msg = m.get('result_msg')
29427
+ if m.get('success') is not None:
29428
+ self.success = m.get('success')
29429
+ if m.get('message_id') is not None:
29430
+ self.message_id = m.get('message_id')
29431
+ if m.get('result') is not None:
29432
+ self.result = m.get('result')
29433
+ return self
29434
+
29435
+
29436
+ class QueryElectrocarTripstatisticsRequest(TeaModel):
29437
+ def __init__(
29438
+ self,
29439
+ auth_token: str = None,
29440
+ product_instance_id: str = None,
29441
+ tuid: str = None,
29442
+ time_dimension: str = None,
29443
+ time_value: int = None,
29444
+ past_days: int = None,
29445
+ ):
29446
+ # OAuth模式下的授权token
29447
+ self.auth_token = auth_token
29448
+ self.product_instance_id = product_instance_id
29449
+ # tuid
29450
+ self.tuid = tuid
29451
+ # String MONTH(月)
29452
+ # WEEK(周)
29453
+ # DAY(日)
29454
+ self.time_dimension = time_dimension
29455
+ # 时间戳(每月的第一天00:00, 每周的第一天00:00, 每日的00:00)
29456
+ self.time_value = time_value
29457
+ # 前 n 月/周/日, 包含当前月/周/日(默认9)
29458
+ self.past_days = past_days
29459
+
29460
+ def validate(self):
29461
+ self.validate_required(self.tuid, 'tuid')
29462
+ self.validate_required(self.time_dimension, 'time_dimension')
29463
+ self.validate_required(self.time_value, 'time_value')
29464
+ self.validate_required(self.past_days, 'past_days')
29465
+
29466
+ def to_map(self):
29467
+ _map = super().to_map()
29468
+ if _map is not None:
29469
+ return _map
29470
+
29471
+ result = dict()
29472
+ if self.auth_token is not None:
29473
+ result['auth_token'] = self.auth_token
29474
+ if self.product_instance_id is not None:
29475
+ result['product_instance_id'] = self.product_instance_id
29476
+ if self.tuid is not None:
29477
+ result['tuid'] = self.tuid
29478
+ if self.time_dimension is not None:
29479
+ result['time_dimension'] = self.time_dimension
29480
+ if self.time_value is not None:
29481
+ result['time_value'] = self.time_value
29482
+ if self.past_days is not None:
29483
+ result['past_days'] = self.past_days
29484
+ return result
29485
+
29486
+ def from_map(self, m: dict = None):
29487
+ m = m or dict()
29488
+ if m.get('auth_token') is not None:
29489
+ self.auth_token = m.get('auth_token')
29490
+ if m.get('product_instance_id') is not None:
29491
+ self.product_instance_id = m.get('product_instance_id')
29492
+ if m.get('tuid') is not None:
29493
+ self.tuid = m.get('tuid')
29494
+ if m.get('time_dimension') is not None:
29495
+ self.time_dimension = m.get('time_dimension')
29496
+ if m.get('time_value') is not None:
29497
+ self.time_value = m.get('time_value')
29498
+ if m.get('past_days') is not None:
29499
+ self.past_days = m.get('past_days')
29500
+ return self
29501
+
29502
+
29503
+ class QueryElectrocarTripstatisticsResponse(TeaModel):
29504
+ def __init__(
29505
+ self,
29506
+ req_msg_id: str = None,
29507
+ result_code: str = None,
29508
+ result_msg: str = None,
29509
+ success: bool = None,
29510
+ trip_statistics: List[TripStatistics] = None,
29511
+ ):
29512
+ # 请求唯一ID,用于链路跟踪和问题排查
29513
+ self.req_msg_id = req_msg_id
29514
+ # 结果码,一般OK表示调用成功
29515
+ self.result_code = result_code
29516
+ # 异常信息的文本描述
29517
+ self.result_msg = result_msg
29518
+ # 状态
29519
+ self.success = success
29520
+ # [{总里程、总用时、总次数、 时期码},{总里程、总用时、总次数、 时期码},......]
29521
+ # 备注:返回前八个加上当前共九个的统计数据(按时间正排)
29522
+ # 时期码说明:
29523
+ # 月维度:
29524
+ # eg1: 12,11,10,9...
29525
+ # eg2: 3, 2, 1, 12(去年12月), 11...
29526
+ # 周维度:
29527
+ # eg1: 52,51,50,49...
29528
+ # eg2: 3,2,1,52(去年最后一周), 51...
29529
+ # 日维度:
29530
+ # eg1: 30,29,28,27...
29531
+ # eg2: 3,2,1,30(上个月最后一天),29...
29532
+ self.trip_statistics = trip_statistics
29533
+
29534
+ def validate(self):
29535
+ if self.trip_statistics:
29536
+ for k in self.trip_statistics:
29537
+ if k:
29538
+ k.validate()
29539
+
29540
+ def to_map(self):
29541
+ _map = super().to_map()
29542
+ if _map is not None:
29543
+ return _map
29544
+
29545
+ result = dict()
29546
+ if self.req_msg_id is not None:
29547
+ result['req_msg_id'] = self.req_msg_id
29548
+ if self.result_code is not None:
29549
+ result['result_code'] = self.result_code
29550
+ if self.result_msg is not None:
29551
+ result['result_msg'] = self.result_msg
29552
+ if self.success is not None:
29553
+ result['success'] = self.success
29554
+ result['trip_statistics'] = []
29555
+ if self.trip_statistics is not None:
29556
+ for k in self.trip_statistics:
29557
+ result['trip_statistics'].append(k.to_map() if k else None)
29558
+ return result
29559
+
29560
+ def from_map(self, m: dict = None):
29561
+ m = m or dict()
29562
+ if m.get('req_msg_id') is not None:
29563
+ self.req_msg_id = m.get('req_msg_id')
29564
+ if m.get('result_code') is not None:
29565
+ self.result_code = m.get('result_code')
29566
+ if m.get('result_msg') is not None:
29567
+ self.result_msg = m.get('result_msg')
29568
+ if m.get('success') is not None:
29569
+ self.success = m.get('success')
29570
+ self.trip_statistics = []
29571
+ if m.get('trip_statistics') is not None:
29572
+ for k in m.get('trip_statistics'):
29573
+ temp_model = TripStatistics()
29574
+ self.trip_statistics.append(temp_model.from_map(k))
29575
+ return self
29576
+
29577
+
29578
+ class QueryElectrocarTriplistRequest(TeaModel):
29579
+ def __init__(
29580
+ self,
29581
+ auth_token: str = None,
29582
+ product_instance_id: str = None,
29583
+ tuid: str = None,
29584
+ time_dimension: str = None,
29585
+ time_value: int = None,
29586
+ page_num: int = None,
29587
+ page_size: int = None,
29588
+ ):
29589
+ # OAuth模式下的授权token
29590
+ self.auth_token = auth_token
29591
+ self.product_instance_id = product_instance_id
29592
+ # tuid
29593
+ self.tuid = tuid
29594
+ # MONTH(月)
29595
+ # WEEK(周)
29596
+ # DAY(日)
29597
+ self.time_dimension = time_dimension
29598
+ # Long 时间戳(每月的第一天00:00, 每周的第一天00:00, 每日的00:00)
29599
+ self.time_value = time_value
29600
+ # 分页
29601
+ self.page_num = page_num
29602
+ # 分页
29603
+ self.page_size = page_size
29604
+
29605
+ def validate(self):
29606
+ self.validate_required(self.tuid, 'tuid')
29607
+ self.validate_required(self.time_dimension, 'time_dimension')
29608
+ self.validate_required(self.time_value, 'time_value')
29609
+ self.validate_required(self.page_num, 'page_num')
29610
+ self.validate_required(self.page_size, 'page_size')
29611
+
29612
+ def to_map(self):
29613
+ _map = super().to_map()
29614
+ if _map is not None:
29615
+ return _map
29616
+
29617
+ result = dict()
29618
+ if self.auth_token is not None:
29619
+ result['auth_token'] = self.auth_token
29620
+ if self.product_instance_id is not None:
29621
+ result['product_instance_id'] = self.product_instance_id
29622
+ if self.tuid is not None:
29623
+ result['tuid'] = self.tuid
29624
+ if self.time_dimension is not None:
29625
+ result['time_dimension'] = self.time_dimension
29626
+ if self.time_value is not None:
29627
+ result['time_value'] = self.time_value
29628
+ if self.page_num is not None:
29629
+ result['page_num'] = self.page_num
29630
+ if self.page_size is not None:
29631
+ result['page_size'] = self.page_size
29632
+ return result
29633
+
29634
+ def from_map(self, m: dict = None):
29635
+ m = m or dict()
29636
+ if m.get('auth_token') is not None:
29637
+ self.auth_token = m.get('auth_token')
29638
+ if m.get('product_instance_id') is not None:
29639
+ self.product_instance_id = m.get('product_instance_id')
29640
+ if m.get('tuid') is not None:
29641
+ self.tuid = m.get('tuid')
29642
+ if m.get('time_dimension') is not None:
29643
+ self.time_dimension = m.get('time_dimension')
29644
+ if m.get('time_value') is not None:
29645
+ self.time_value = m.get('time_value')
29646
+ if m.get('page_num') is not None:
29647
+ self.page_num = m.get('page_num')
29648
+ if m.get('page_size') is not None:
29649
+ self.page_size = m.get('page_size')
29650
+ return self
29651
+
29652
+
29653
+ class QueryElectrocarTriplistResponse(TeaModel):
29654
+ def __init__(
29655
+ self,
29656
+ req_msg_id: str = None,
29657
+ result_code: str = None,
29658
+ result_msg: str = None,
29659
+ success: bool = None,
29660
+ trip_detail_list: List[TripDetail] = None,
29661
+ ):
29662
+ # 请求唯一ID,用于链路跟踪和问题排查
29663
+ self.req_msg_id = req_msg_id
29664
+ # 结果码,一般OK表示调用成功
29665
+ self.result_code = result_code
29666
+ # 异常信息的文本描述
29667
+ self.result_msg = result_msg
29668
+ # 状态
29669
+ self.success = success
29670
+ # 行程列表
29671
+ self.trip_detail_list = trip_detail_list
29672
+
29673
+ def validate(self):
29674
+ if self.trip_detail_list:
29675
+ for k in self.trip_detail_list:
29676
+ if k:
29677
+ k.validate()
29678
+
29679
+ def to_map(self):
29680
+ _map = super().to_map()
29681
+ if _map is not None:
29682
+ return _map
29683
+
29684
+ result = dict()
29685
+ if self.req_msg_id is not None:
29686
+ result['req_msg_id'] = self.req_msg_id
29687
+ if self.result_code is not None:
29688
+ result['result_code'] = self.result_code
29689
+ if self.result_msg is not None:
29690
+ result['result_msg'] = self.result_msg
29691
+ if self.success is not None:
29692
+ result['success'] = self.success
29693
+ result['trip_detail_list'] = []
29694
+ if self.trip_detail_list is not None:
29695
+ for k in self.trip_detail_list:
29696
+ result['trip_detail_list'].append(k.to_map() if k else None)
29697
+ return result
29698
+
29699
+ def from_map(self, m: dict = None):
29700
+ m = m or dict()
29701
+ if m.get('req_msg_id') is not None:
29702
+ self.req_msg_id = m.get('req_msg_id')
29703
+ if m.get('result_code') is not None:
29704
+ self.result_code = m.get('result_code')
29705
+ if m.get('result_msg') is not None:
29706
+ self.result_msg = m.get('result_msg')
29707
+ if m.get('success') is not None:
29708
+ self.success = m.get('success')
29709
+ self.trip_detail_list = []
29710
+ if m.get('trip_detail_list') is not None:
29711
+ for k in m.get('trip_detail_list'):
29712
+ temp_model = TripDetail()
29713
+ self.trip_detail_list.append(temp_model.from_map(k))
29714
+ return self
29715
+
29716
+
29717
+ class QueryElectrocarTrippointsRequest(TeaModel):
29718
+ def __init__(
29719
+ self,
29720
+ auth_token: str = None,
29721
+ product_instance_id: str = None,
29722
+ tuid: str = None,
29723
+ trip_id: str = None,
29724
+ ):
29725
+ # OAuth模式下的授权token
29726
+ self.auth_token = auth_token
29727
+ self.product_instance_id = product_instance_id
29728
+ # tuid
29729
+ self.tuid = tuid
29730
+ # 行程id
29731
+ self.trip_id = trip_id
29732
+
29733
+ def validate(self):
29734
+ self.validate_required(self.tuid, 'tuid')
29735
+ self.validate_required(self.trip_id, 'trip_id')
29736
+
29737
+ def to_map(self):
29738
+ _map = super().to_map()
29739
+ if _map is not None:
29740
+ return _map
29741
+
29742
+ result = dict()
29743
+ if self.auth_token is not None:
29744
+ result['auth_token'] = self.auth_token
29745
+ if self.product_instance_id is not None:
29746
+ result['product_instance_id'] = self.product_instance_id
29747
+ if self.tuid is not None:
29748
+ result['tuid'] = self.tuid
29749
+ if self.trip_id is not None:
29750
+ result['trip_id'] = self.trip_id
29751
+ return result
29752
+
29753
+ def from_map(self, m: dict = None):
29754
+ m = m or dict()
29755
+ if m.get('auth_token') is not None:
29756
+ self.auth_token = m.get('auth_token')
29757
+ if m.get('product_instance_id') is not None:
29758
+ self.product_instance_id = m.get('product_instance_id')
29759
+ if m.get('tuid') is not None:
29760
+ self.tuid = m.get('tuid')
29761
+ if m.get('trip_id') is not None:
29762
+ self.trip_id = m.get('trip_id')
29763
+ return self
29764
+
29765
+
29766
+ class QueryElectrocarTrippointsResponse(TeaModel):
29767
+ def __init__(
29768
+ self,
29769
+ req_msg_id: str = None,
29770
+ result_code: str = None,
29771
+ result_msg: str = None,
29772
+ success: bool = None,
29773
+ trip_points: List[str] = None,
29774
+ ):
29775
+ # 请求唯一ID,用于链路跟踪和问题排查
29776
+ self.req_msg_id = req_msg_id
29777
+ # 结果码,一般OK表示调用成功
29778
+ self.result_code = result_code
29779
+ # 异常信息的文本描述
29780
+ self.result_msg = result_msg
29781
+ # 状态
29782
+ self.success = success
29783
+ # List<String> ["123.1223456_12.123456", "123.1223456_12.123456"]
29784
+ self.trip_points = trip_points
29785
+
29786
+ def validate(self):
29787
+ pass
29788
+
29789
+ def to_map(self):
29790
+ _map = super().to_map()
29791
+ if _map is not None:
29792
+ return _map
29793
+
29794
+ result = dict()
29795
+ if self.req_msg_id is not None:
29796
+ result['req_msg_id'] = self.req_msg_id
29797
+ if self.result_code is not None:
29798
+ result['result_code'] = self.result_code
29799
+ if self.result_msg is not None:
29800
+ result['result_msg'] = self.result_msg
29801
+ if self.success is not None:
29802
+ result['success'] = self.success
29803
+ if self.trip_points is not None:
29804
+ result['trip_points'] = self.trip_points
29805
+ return result
29806
+
29807
+ def from_map(self, m: dict = None):
29808
+ m = m or dict()
29809
+ if m.get('req_msg_id') is not None:
29810
+ self.req_msg_id = m.get('req_msg_id')
29811
+ if m.get('result_code') is not None:
29812
+ self.result_code = m.get('result_code')
29813
+ if m.get('result_msg') is not None:
29814
+ self.result_msg = m.get('result_msg')
29815
+ if m.get('success') is not None:
29816
+ self.success = m.get('success')
29817
+ if m.get('trip_points') is not None:
29818
+ self.trip_points = m.get('trip_points')
29819
+ return self
29820
+
29821
+
29822
+ class QueryElectrocarTriplastRequest(TeaModel):
28908
29823
  def __init__(
28909
29824
  self,
28910
29825
  auth_token: str = None,
28911
29826
  product_instance_id: str = None,
28912
- request_id: str = None,
28913
- online_flag: str = None,
28914
- device_type: str = None,
28915
- cred_type: str = None,
28916
- brand_id: str = None,
28917
- generate_code: str = None,
28918
- protocol_type: str = None,
28919
- key_less: str = None,
28920
- mac: str = None,
28921
- ble_name: str = None,
28922
- device_sn: str = None,
28923
- access_scene: str = None,
28924
- aliyun_iot_enabled: bool = None,
28925
- channel: str = None,
29827
+ tuid: str = None,
29828
+ time_dimension: str = None,
29829
+ time_value: int = None,
28926
29830
  ):
28927
29831
  # OAuth模式下的授权token
28928
29832
  self.auth_token = auth_token
28929
29833
  self.product_instance_id = product_instance_id
28930
- # 请求唯一标识Id 调用方生成,需要保证唯一性
28931
- self.request_id = request_id
28932
- # 模式 默认为false,产线申请为true
28933
- self.online_flag = online_flag
28934
- # 设备类型 默认为4-芯片SE,联系技术配置具体的设备类型
28935
- self.device_type = device_type
28936
- # 凭证类型,默认se_dk_cred,如果是MCU,则mcu_dk_cred
28937
- self.cred_type = cred_type
28938
- # 品牌Id
28939
- self.brand_id = brand_id
28940
- # 凭证内容
28941
- # 集合结构[0,1,2,3]
28942
- # 0:IIFAA根密钥
28943
- # 1:企业业务密钥
28944
- # 2:设备密钥
28945
- # 3:无感控车
28946
- # 如果此字段为空,则默认生成0,1,2
28947
- self.generate_code = generate_code
28948
- # 协议类型
28949
- # 蓝牙:ble
28950
- # 4G: 4G
28951
- # 蓝牙+4G:ble|4G
28952
- # 如果此字段为空,默认为ble
28953
- self.protocol_type = protocol_type
28954
- # 无感控车设备端数据,当generateCode包含3的时候,此字段不能为空
28955
- self.key_less = key_less
28956
- # mac
28957
- self.mac = mac
28958
- # ble_name
28959
- self.ble_name = ble_name
28960
- # 设备sn
28961
- self.device_sn = device_sn
28962
- # 接入场景码
28963
- self.access_scene = access_scene
28964
- # 标识是否启用了阿里云物联网平台
28965
- self.aliyun_iot_enabled = aliyun_iot_enabled
28966
- # 设备接入 4g 渠道
28967
- self.channel = channel
29834
+ # tuid
29835
+ self.tuid = tuid
29836
+ # MONTH(月)
29837
+ # WEEK(周)
29838
+ # DAY(日)
29839
+ self.time_dimension = time_dimension
29840
+ # 时间戳
29841
+ self.time_value = time_value
28968
29842
 
28969
29843
  def validate(self):
28970
- self.validate_required(self.request_id, 'request_id')
28971
- self.validate_required(self.brand_id, 'brand_id')
28972
- self.validate_required(self.protocol_type, 'protocol_type')
28973
- self.validate_required(self.mac, 'mac')
28974
- self.validate_required(self.ble_name, 'ble_name')
28975
- self.validate_required(self.device_sn, 'device_sn')
28976
- self.validate_required(self.access_scene, 'access_scene')
29844
+ self.validate_required(self.tuid, 'tuid')
29845
+ self.validate_required(self.time_dimension, 'time_dimension')
29846
+ self.validate_required(self.time_value, 'time_value')
28977
29847
 
28978
29848
  def to_map(self):
28979
29849
  _map = super().to_map()
@@ -28985,34 +29855,12 @@ class CreateElectrocarApplycarkeycertificateRequest(TeaModel):
28985
29855
  result['auth_token'] = self.auth_token
28986
29856
  if self.product_instance_id is not None:
28987
29857
  result['product_instance_id'] = self.product_instance_id
28988
- if self.request_id is not None:
28989
- result['request_id'] = self.request_id
28990
- if self.online_flag is not None:
28991
- result['online_flag'] = self.online_flag
28992
- if self.device_type is not None:
28993
- result['device_type'] = self.device_type
28994
- if self.cred_type is not None:
28995
- result['cred_type'] = self.cred_type
28996
- if self.brand_id is not None:
28997
- result['brand_id'] = self.brand_id
28998
- if self.generate_code is not None:
28999
- result['generate_code'] = self.generate_code
29000
- if self.protocol_type is not None:
29001
- result['protocol_type'] = self.protocol_type
29002
- if self.key_less is not None:
29003
- result['key_less'] = self.key_less
29004
- if self.mac is not None:
29005
- result['mac'] = self.mac
29006
- if self.ble_name is not None:
29007
- result['ble_name'] = self.ble_name
29008
- if self.device_sn is not None:
29009
- result['device_sn'] = self.device_sn
29010
- if self.access_scene is not None:
29011
- result['access_scene'] = self.access_scene
29012
- if self.aliyun_iot_enabled is not None:
29013
- result['aliyun_iot_enabled'] = self.aliyun_iot_enabled
29014
- if self.channel is not None:
29015
- result['channel'] = self.channel
29858
+ if self.tuid is not None:
29859
+ result['tuid'] = self.tuid
29860
+ if self.time_dimension is not None:
29861
+ result['time_dimension'] = self.time_dimension
29862
+ if self.time_value is not None:
29863
+ result['time_value'] = self.time_value
29016
29864
  return result
29017
29865
 
29018
29866
  def from_map(self, m: dict = None):
@@ -29021,48 +29869,23 @@ class CreateElectrocarApplycarkeycertificateRequest(TeaModel):
29021
29869
  self.auth_token = m.get('auth_token')
29022
29870
  if m.get('product_instance_id') is not None:
29023
29871
  self.product_instance_id = m.get('product_instance_id')
29024
- if m.get('request_id') is not None:
29025
- self.request_id = m.get('request_id')
29026
- if m.get('online_flag') is not None:
29027
- self.online_flag = m.get('online_flag')
29028
- if m.get('device_type') is not None:
29029
- self.device_type = m.get('device_type')
29030
- if m.get('cred_type') is not None:
29031
- self.cred_type = m.get('cred_type')
29032
- if m.get('brand_id') is not None:
29033
- self.brand_id = m.get('brand_id')
29034
- if m.get('generate_code') is not None:
29035
- self.generate_code = m.get('generate_code')
29036
- if m.get('protocol_type') is not None:
29037
- self.protocol_type = m.get('protocol_type')
29038
- if m.get('key_less') is not None:
29039
- self.key_less = m.get('key_less')
29040
- if m.get('mac') is not None:
29041
- self.mac = m.get('mac')
29042
- if m.get('ble_name') is not None:
29043
- self.ble_name = m.get('ble_name')
29044
- if m.get('device_sn') is not None:
29045
- self.device_sn = m.get('device_sn')
29046
- if m.get('access_scene') is not None:
29047
- self.access_scene = m.get('access_scene')
29048
- if m.get('aliyun_iot_enabled') is not None:
29049
- self.aliyun_iot_enabled = m.get('aliyun_iot_enabled')
29050
- if m.get('channel') is not None:
29051
- self.channel = m.get('channel')
29872
+ if m.get('tuid') is not None:
29873
+ self.tuid = m.get('tuid')
29874
+ if m.get('time_dimension') is not None:
29875
+ self.time_dimension = m.get('time_dimension')
29876
+ if m.get('time_value') is not None:
29877
+ self.time_value = m.get('time_value')
29052
29878
  return self
29053
29879
 
29054
29880
 
29055
- class CreateElectrocarApplycarkeycertificateResponse(TeaModel):
29881
+ class QueryElectrocarTriplastResponse(TeaModel):
29056
29882
  def __init__(
29057
29883
  self,
29058
29884
  req_msg_id: str = None,
29059
29885
  result_code: str = None,
29060
29886
  result_msg: str = None,
29061
- tuid: str = None,
29062
- device_did: str = None,
29063
- mqtt_content: str = None,
29064
- car_key_init_data: str = None,
29065
29887
  success: bool = None,
29888
+ last_trip_detail: TripDetail = None,
29066
29889
  ):
29067
29890
  # 请求唯一ID,用于链路跟踪和问题排查
29068
29891
  self.req_msg_id = req_msg_id
@@ -29070,19 +29893,29 @@ class CreateElectrocarApplycarkeycertificateResponse(TeaModel):
29070
29893
  self.result_code = result_code
29071
29894
  # 异常信息的文本描述
29072
29895
  self.result_msg = result_msg
29073
- # sn
29074
- self.tuid = tuid
29075
- # deviceDid
29076
- self.device_did = device_did
29077
- # 三元组+连接实例id
29078
- self.mqtt_content = mqtt_content
29079
- # 凭证接口返回参数
29080
- self.car_key_init_data = car_key_init_data
29081
- # 成功/失败
29896
+ # 状态
29082
29897
  self.success = success
29898
+ # {
29899
+ # "startTime":1733841600000,
29900
+ # "tripId":"T20251210140000001",
29901
+ # "endTime":1733845200000,
29902
+ # "mileage":36.8,
29903
+ # "duration":{
29904
+ # "value":"79",
29905
+ # "unit":"h"
29906
+ # },
29907
+ # "maxSpeed":85.5,
29908
+ # "avgSpeed":36.8,
29909
+ # "firstAddress":"上海市浦东新区张江高科技园区博云路",
29910
+ # "lastAddress":"上海市徐汇区漕河泾开发区桂平路",
29911
+ # "firstLocationTime":1733841605000,
29912
+ # "lastLocationTime":1733845195000
29913
+ # }
29914
+ self.last_trip_detail = last_trip_detail
29083
29915
 
29084
29916
  def validate(self):
29085
- pass
29917
+ if self.last_trip_detail:
29918
+ self.last_trip_detail.validate()
29086
29919
 
29087
29920
  def to_map(self):
29088
29921
  _map = super().to_map()
@@ -29096,16 +29929,10 @@ class CreateElectrocarApplycarkeycertificateResponse(TeaModel):
29096
29929
  result['result_code'] = self.result_code
29097
29930
  if self.result_msg is not None:
29098
29931
  result['result_msg'] = self.result_msg
29099
- if self.tuid is not None:
29100
- result['tuid'] = self.tuid
29101
- if self.device_did is not None:
29102
- result['device_did'] = self.device_did
29103
- if self.mqtt_content is not None:
29104
- result['mqtt_content'] = self.mqtt_content
29105
- if self.car_key_init_data is not None:
29106
- result['car_key_init_data'] = self.car_key_init_data
29107
29932
  if self.success is not None:
29108
29933
  result['success'] = self.success
29934
+ if self.last_trip_detail is not None:
29935
+ result['last_trip_detail'] = self.last_trip_detail.to_map()
29109
29936
  return result
29110
29937
 
29111
29938
  def from_map(self, m: dict = None):
@@ -29116,16 +29943,11 @@ class CreateElectrocarApplycarkeycertificateResponse(TeaModel):
29116
29943
  self.result_code = m.get('result_code')
29117
29944
  if m.get('result_msg') is not None:
29118
29945
  self.result_msg = m.get('result_msg')
29119
- if m.get('tuid') is not None:
29120
- self.tuid = m.get('tuid')
29121
- if m.get('device_did') is not None:
29122
- self.device_did = m.get('device_did')
29123
- if m.get('mqtt_content') is not None:
29124
- self.mqtt_content = m.get('mqtt_content')
29125
- if m.get('car_key_init_data') is not None:
29126
- self.car_key_init_data = m.get('car_key_init_data')
29127
29946
  if m.get('success') is not None:
29128
29947
  self.success = m.get('success')
29948
+ if m.get('last_trip_detail') is not None:
29949
+ temp_model = TripDetail()
29950
+ self.last_trip_detail = temp_model.from_map(m['last_trip_detail'])
29129
29951
  return self
29130
29952
 
29131
29953
 
@@ -30843,19 +31665,21 @@ class GetDeviceBydeviceidRequest(TeaModel):
30843
31665
  self,
30844
31666
  auth_token: str = None,
30845
31667
  product_instance_id: str = None,
30846
- device_id_list: List[str] = None,
30847
31668
  scene: str = None,
31669
+ device_id_list: List[str] = None,
31670
+ component_id_list: List[str] = None,
30848
31671
  ):
30849
31672
  # OAuth模式下的授权token
30850
31673
  self.auth_token = auth_token
30851
31674
  self.product_instance_id = product_instance_id
30852
- # 设备id集合
30853
- self.device_id_list = device_id_list
30854
31675
  # 场景码
30855
31676
  self.scene = scene
31677
+ # 设备id列表(推荐使用该参数,deviceIdList不为空时,componentIdList不用填)
31678
+ self.device_id_list = device_id_list
31679
+ # 模组ID(IMEI/SN/MAC)列表,当没有设备id时,可以用该字段查询设备
31680
+ self.component_id_list = component_id_list
30856
31681
 
30857
31682
  def validate(self):
30858
- self.validate_required(self.device_id_list, 'device_id_list')
30859
31683
  self.validate_required(self.scene, 'scene')
30860
31684
 
30861
31685
  def to_map(self):
@@ -30868,10 +31692,12 @@ class GetDeviceBydeviceidRequest(TeaModel):
30868
31692
  result['auth_token'] = self.auth_token
30869
31693
  if self.product_instance_id is not None:
30870
31694
  result['product_instance_id'] = self.product_instance_id
30871
- if self.device_id_list is not None:
30872
- result['device_id_list'] = self.device_id_list
30873
31695
  if self.scene is not None:
30874
31696
  result['scene'] = self.scene
31697
+ if self.device_id_list is not None:
31698
+ result['device_id_list'] = self.device_id_list
31699
+ if self.component_id_list is not None:
31700
+ result['component_id_list'] = self.component_id_list
30875
31701
  return result
30876
31702
 
30877
31703
  def from_map(self, m: dict = None):
@@ -30880,10 +31706,12 @@ class GetDeviceBydeviceidRequest(TeaModel):
30880
31706
  self.auth_token = m.get('auth_token')
30881
31707
  if m.get('product_instance_id') is not None:
30882
31708
  self.product_instance_id = m.get('product_instance_id')
30883
- if m.get('device_id_list') is not None:
30884
- self.device_id_list = m.get('device_id_list')
30885
31709
  if m.get('scene') is not None:
30886
31710
  self.scene = m.get('scene')
31711
+ if m.get('device_id_list') is not None:
31712
+ self.device_id_list = m.get('device_id_list')
31713
+ if m.get('component_id_list') is not None:
31714
+ self.component_id_list = m.get('component_id_list')
30887
31715
  return self
30888
31716
 
30889
31717
 
@@ -30896,6 +31724,8 @@ class GetDeviceBydeviceidResponse(TeaModel):
30896
31724
  device_list: List[Device] = None,
30897
31725
  miss_device_id_list: List[str] = None,
30898
31726
  success_device_id_list: List[str] = None,
31727
+ miss_component_id_list: List[str] = None,
31728
+ success_component_id_list: List[str] = None,
30899
31729
  ):
30900
31730
  # 请求唯一ID,用于链路跟踪和问题排查
30901
31731
  self.req_msg_id = req_msg_id
@@ -30905,10 +31735,14 @@ class GetDeviceBydeviceidResponse(TeaModel):
30905
31735
  self.result_msg = result_msg
30906
31736
  # 设备详情
30907
31737
  self.device_list = device_list
30908
- # 设备信息不存在的deviceid集合
31738
+ # 设备信息不存在的deviceid列表
30909
31739
  self.miss_device_id_list = miss_device_id_list
30910
- # 成功获取到设备信息的deviceid集合
31740
+ # 成功获取到设备信息的deviceid列表
30911
31741
  self.success_device_id_list = success_device_id_list
31742
+ # 设备信息不存在的模组ID列表
31743
+ self.miss_component_id_list = miss_component_id_list
31744
+ # 成功获取到设备信息的模组ID列表
31745
+ self.success_component_id_list = success_component_id_list
30912
31746
 
30913
31747
  def validate(self):
30914
31748
  if self.device_list:
@@ -30936,6 +31770,10 @@ class GetDeviceBydeviceidResponse(TeaModel):
30936
31770
  result['miss_device_id_list'] = self.miss_device_id_list
30937
31771
  if self.success_device_id_list is not None:
30938
31772
  result['success_device_id_list'] = self.success_device_id_list
31773
+ if self.miss_component_id_list is not None:
31774
+ result['miss_component_id_list'] = self.miss_component_id_list
31775
+ if self.success_component_id_list is not None:
31776
+ result['success_component_id_list'] = self.success_component_id_list
30939
31777
  return result
30940
31778
 
30941
31779
  def from_map(self, m: dict = None):
@@ -30955,6 +31793,10 @@ class GetDeviceBydeviceidResponse(TeaModel):
30955
31793
  self.miss_device_id_list = m.get('miss_device_id_list')
30956
31794
  if m.get('success_device_id_list') is not None:
30957
31795
  self.success_device_id_list = m.get('success_device_id_list')
31796
+ if m.get('miss_component_id_list') is not None:
31797
+ self.miss_component_id_list = m.get('miss_component_id_list')
31798
+ if m.get('success_component_id_list') is not None:
31799
+ self.success_component_id_list = m.get('success_component_id_list')
30958
31800
  return self
30959
31801
 
30960
31802
 
@@ -44213,6 +45055,140 @@ class SendTaskalarmResponse(TeaModel):
44213
45055
  return self
44214
45056
 
44215
45057
 
45058
+ class ApplyTechintegrationSkushipemptymodelbyuidRequest(TeaModel):
45059
+ def __init__(
45060
+ self,
45061
+ auth_token: str = None,
45062
+ product_instance_id: str = None,
45063
+ vendor_id: str = None,
45064
+ product_id: str = None,
45065
+ device_id: str = None,
45066
+ product_type: int = None,
45067
+ cert_type: int = None,
45068
+ id_2: str = None,
45069
+ ):
45070
+ # OAuth模式下的授权token
45071
+ self.auth_token = auth_token
45072
+ self.product_instance_id = product_instance_id
45073
+ # 场景码
45074
+ self.vendor_id = vendor_id
45075
+ # 设备型号
45076
+ self.product_id = product_id
45077
+ # 设备SN号
45078
+ self.device_id = device_id
45079
+ # 产品类型
45080
+ self.product_type = product_type
45081
+ # 凭证种类,高八位表示是否下发凭证,低八位表示安全方案
45082
+ self.cert_type = cert_type
45083
+ # id2 authCode
45084
+ self.id_2 = id_2
45085
+
45086
+ def validate(self):
45087
+ self.validate_required(self.vendor_id, 'vendor_id')
45088
+ self.validate_required(self.product_id, 'product_id')
45089
+ self.validate_required(self.device_id, 'device_id')
45090
+
45091
+ def to_map(self):
45092
+ _map = super().to_map()
45093
+ if _map is not None:
45094
+ return _map
45095
+
45096
+ result = dict()
45097
+ if self.auth_token is not None:
45098
+ result['auth_token'] = self.auth_token
45099
+ if self.product_instance_id is not None:
45100
+ result['product_instance_id'] = self.product_instance_id
45101
+ if self.vendor_id is not None:
45102
+ result['vendor_id'] = self.vendor_id
45103
+ if self.product_id is not None:
45104
+ result['product_id'] = self.product_id
45105
+ if self.device_id is not None:
45106
+ result['device_id'] = self.device_id
45107
+ if self.product_type is not None:
45108
+ result['product_type'] = self.product_type
45109
+ if self.cert_type is not None:
45110
+ result['cert_type'] = self.cert_type
45111
+ if self.id_2 is not None:
45112
+ result['id2'] = self.id_2
45113
+ return result
45114
+
45115
+ def from_map(self, m: dict = None):
45116
+ m = m or dict()
45117
+ if m.get('auth_token') is not None:
45118
+ self.auth_token = m.get('auth_token')
45119
+ if m.get('product_instance_id') is not None:
45120
+ self.product_instance_id = m.get('product_instance_id')
45121
+ if m.get('vendor_id') is not None:
45122
+ self.vendor_id = m.get('vendor_id')
45123
+ if m.get('product_id') is not None:
45124
+ self.product_id = m.get('product_id')
45125
+ if m.get('device_id') is not None:
45126
+ self.device_id = m.get('device_id')
45127
+ if m.get('product_type') is not None:
45128
+ self.product_type = m.get('product_type')
45129
+ if m.get('cert_type') is not None:
45130
+ self.cert_type = m.get('cert_type')
45131
+ if m.get('id2') is not None:
45132
+ self.id_2 = m.get('id2')
45133
+ return self
45134
+
45135
+
45136
+ class ApplyTechintegrationSkushipemptymodelbyuidResponse(TeaModel):
45137
+ def __init__(
45138
+ self,
45139
+ req_msg_id: str = None,
45140
+ result_code: str = None,
45141
+ result_msg: str = None,
45142
+ cert: str = None,
45143
+ id_2: str = None,
45144
+ ):
45145
+ # 请求唯一ID,用于链路跟踪和问题排查
45146
+ self.req_msg_id = req_msg_id
45147
+ # 结果码,一般OK表示调用成功
45148
+ self.result_code = result_code
45149
+ # 异常信息的文本描述
45150
+ self.result_msg = result_msg
45151
+ # 证书信息
45152
+ self.cert = cert
45153
+ # Id2信息
45154
+ self.id_2 = id_2
45155
+
45156
+ def validate(self):
45157
+ pass
45158
+
45159
+ def to_map(self):
45160
+ _map = super().to_map()
45161
+ if _map is not None:
45162
+ return _map
45163
+
45164
+ result = dict()
45165
+ if self.req_msg_id is not None:
45166
+ result['req_msg_id'] = self.req_msg_id
45167
+ if self.result_code is not None:
45168
+ result['result_code'] = self.result_code
45169
+ if self.result_msg is not None:
45170
+ result['result_msg'] = self.result_msg
45171
+ if self.cert is not None:
45172
+ result['cert'] = self.cert
45173
+ if self.id_2 is not None:
45174
+ result['id2'] = self.id_2
45175
+ return result
45176
+
45177
+ def from_map(self, m: dict = None):
45178
+ m = m or dict()
45179
+ if m.get('req_msg_id') is not None:
45180
+ self.req_msg_id = m.get('req_msg_id')
45181
+ if m.get('result_code') is not None:
45182
+ self.result_code = m.get('result_code')
45183
+ if m.get('result_msg') is not None:
45184
+ self.result_msg = m.get('result_msg')
45185
+ if m.get('cert') is not None:
45186
+ self.cert = m.get('cert')
45187
+ if m.get('id2') is not None:
45188
+ self.id_2 = m.get('id2')
45189
+ return self
45190
+
45191
+
44216
45192
  class ExecThingsdidOneapiRequest(TeaModel):
44217
45193
  def __init__(
44218
45194
  self,