layrz-sdk 3.1.28__py3-none-any.whl → 3.1.30__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

@@ -48,6 +48,7 @@ from .custom_field import CustomField
48
48
  from .custom_report_page import CustomReportPage
49
49
  from .device import Device
50
50
  from .event import Event
51
+ from .function import Function
51
52
  from .geofence import Geofence
52
53
  from .last_message import LastMessage
53
54
  from .message import Message
@@ -20,7 +20,7 @@ from .static_position import StaticPosition
20
20
  class Asset(BaseModel):
21
21
  """Asset entity definition"""
22
22
 
23
- pk: int = Field(description='Defines the primary key of the asset')
23
+ pk: int = Field(description='Defines the primary key of the asset', serialization_alias='id')
24
24
  name: str = Field(description='Defines the name of the asset')
25
25
  vin: str | None = Field(
26
26
  default=None,
@@ -8,6 +8,7 @@ from pydantic import BaseModel, Field
8
8
  from layrz_sdk.constants import UTC
9
9
  from layrz_sdk.entities.asset import Asset
10
10
  from layrz_sdk.entities.device import Device
11
+ from layrz_sdk.entities.trigger import Trigger
11
12
 
12
13
  from .service import BroadcastService
13
14
 
@@ -23,9 +24,17 @@ class BroadcastPayload(BaseModel):
23
24
  }
24
25
 
25
26
  asset: Asset = Field(..., description='Asset object')
26
- primary_device: Device | None = Field(None, description='Primary device object', serialization_alias='primaryDevice')
27
+ primary_device: Device | None = Field(
28
+ default=None,
29
+ description='Primary device object',
30
+ serialization_alias='primaryDevice',
31
+ )
32
+ trigger: Trigger | None = Field(
33
+ default=None,
34
+ description='Trigger object, if available',
35
+ )
27
36
  message_id: int | str = Field(..., description='Message ID', serialization_alias='message.id')
28
- service: BroadcastService | None = Field(None, description='Broadcast service object')
37
+ service: BroadcastService | None = Field(default=None, description='Broadcast service object')
29
38
  position: dict[str, Any] = Field(default_factory=dict, description='Position data, if available')
30
39
  sensors: dict[str, Any] = Field(default_factory=dict, description='Sensors data, if available')
31
40
  payload: dict[str, Any] = Field(default_factory=dict, description='Payload data, if available')
@@ -8,7 +8,7 @@ from .modbus import ModbusConfig
8
8
  class Device(BaseModel):
9
9
  """Device entity"""
10
10
 
11
- pk: int = Field(description='Defines the primary key of the device')
11
+ pk: int = Field(description='Defines the primary key of the device', serialization_alias='id')
12
12
  name: str = Field(description='Defines the name of the device')
13
13
  ident: str = Field(description='Defines the identifier of the device')
14
14
  protocol_id: int | None = Field(
@@ -0,0 +1,29 @@
1
+ """Geofence entity"""
2
+
3
+ from datetime import timedelta
4
+ from typing import Any, Dict, List, Optional
5
+
6
+ from pydantic import BaseModel, Field, constr
7
+
8
+ from .asset import Asset
9
+
10
+
11
+ class Function(BaseModel):
12
+ """Function entity"""
13
+
14
+ pk: int = Field(description='Defines the primary key of the Function')
15
+ name: str = Field(description='Name of the function')
16
+
17
+ maximum_time: Optional[timedelta] = None # DurationField → timedelta
18
+ minutes_delta: Optional[timedelta] = None
19
+
20
+ external_identifiers: List[constr(max_length=255)] = Field(default_factory=list) # type: ignore
21
+
22
+ credentials: Dict[str, Any] = Field(default_factory=dict)
23
+
24
+ # Many-to-manys ➜ list of nested DTOs
25
+ assets: List[Asset] = Field(default_factory=list)
26
+
27
+ # Foreign keys – normally expose only the FK id to keep the payload small.
28
+ owner_id: Optional[int] = None
29
+ algorithm_id: int
@@ -6,6 +6,6 @@ from pydantic import BaseModel, Field
6
6
  class Trigger(BaseModel):
7
7
  """Trigger entity"""
8
8
 
9
- pk: int = Field(description='Defines the primary key of the trigger')
9
+ pk: int = Field(description='Defines the primary key of the trigger', serialization_alias='id')
10
10
  name: str = Field(description='Defines the name of the trigger')
11
11
  code: str = Field(description='Defines the code of the trigger')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: layrz-sdk
3
- Version: 3.1.28
3
+ Version: 3.1.30
4
4
  Summary: Layrz SDK for Python
5
5
  Author-email: "Golden M, Inc." <software@goldenm.com>
6
6
  Maintainer-email: Kenny Mochizuki <kenny@goldenm.com>, Luis Reyes <lreyes@goldenm.com>, Kasen Li <kli@goldenm.com>
@@ -2,8 +2,8 @@ layrz_sdk/__init__.py,sha256=OutylN0QazaeDVIA5NRDVyzwfYnZkAwVQzT-2F6iX2M,28
2
2
  layrz_sdk/backwards.py,sha256=f_DUxvbZs-p287-wGwxx0NVUK7Gha-cNP_hHRAJWAq0,85
3
3
  layrz_sdk/constants.py,sha256=guXfIsVAcex76OEMv6DAJy1km1A_WUfWJuUO2Lo3kXE,344
4
4
  layrz_sdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- layrz_sdk/entities/__init__.py,sha256=CrPrN6MnGkOKhQUF_ssi5U0z4wrQHXdQD7yen5APhzA,4027
6
- layrz_sdk/entities/asset.py,sha256=9dVnNXeBP_CnpXUU2KH7LiQxCWBXZzok13HMkN9diaI,2583
5
+ layrz_sdk/entities/__init__.py,sha256=c2fxfagl7MlZRoz5pOlkCM-3eDb_Gfrv6OHwQ_USMcs,4058
6
+ layrz_sdk/entities/asset.py,sha256=Z2KZkn60Ys0zHL1LUyRoDh9D9QCdqk9LdUB_z5op0HY,2609
7
7
  layrz_sdk/entities/asset_constants.py,sha256=H-RY9XvSz9lzjkx9YjNT4dZEp5v8WOweQHjwHDUGw60,710
8
8
  layrz_sdk/entities/asset_operation_mode.py,sha256=1RLRpbUm6jwxivdKbB2O6wdnrhyqaccQ_moA-wrnzdQ,639
9
9
  layrz_sdk/entities/case.py,sha256=0dSfZCezDuEEED42rws-zntqa_Em9oFevlXSPrIeIC8,1877
@@ -13,8 +13,9 @@ layrz_sdk/entities/checkpoint.py,sha256=Y_LduHugWdn3sLvXmiqjaIXnGzoJ5aN_qLCzD9YX
13
13
  layrz_sdk/entities/comment.py,sha256=1YSWVxXlpoicVVHv3mvkNlfUTfcOMxZYfb4YmwrxchY,414
14
14
  layrz_sdk/entities/custom_field.py,sha256=jurONu01Ph-Qq8uuxdzxoQ6i7BqbZe64vO2ESvQDSFg,277
15
15
  layrz_sdk/entities/custom_report_page.py,sha256=eqtoFOgip0z4_cMql1tHgaR4JiVEYlfbzd9ZJ7ZLyrM,1231
16
- layrz_sdk/entities/device.py,sha256=rqBJf0L-cIfxE6ONwGHVx_L0StyQL-ycvSVzug4iIwQ,732
16
+ layrz_sdk/entities/device.py,sha256=OPSmaQzvuttV03pYs8an35BngksQH2guk_SReMtAnzU,758
17
17
  layrz_sdk/entities/event.py,sha256=cFjFRrKQp4TykPkrCoXy5PYPykcAzrcHtAhRl_V4hdk,754
18
+ layrz_sdk/entities/function.py,sha256=n1E72233GM7kSZEUVj8e9IiV7XyeirGMlwrqsNf_xAc,865
18
19
  layrz_sdk/entities/geofence.py,sha256=jPuG5OCknkM37Q4h5haOXdV4OpVyd4gX77dFjd-FaP4,326
19
20
  layrz_sdk/entities/last_message.py,sha256=QNgF0xCQ6uLFDMmKQCjSRhGS1Bq7akw5pv6ZIiFlwfY,268
20
21
  layrz_sdk/entities/message.py,sha256=eFID7CEBnwp6-MsfhK09JPSJzp7iRbQibJOe_ELgQ9A,563
@@ -32,11 +33,11 @@ layrz_sdk/entities/report_row.py,sha256=t2Rk7LeforU-sD5abqnTQES2Oac8dmEXMLLo_18x
32
33
  layrz_sdk/entities/sensor.py,sha256=9Q6RGb9qDvyLS4tELZOZtPlaiWi9An5Vf0gGLGWIRhE,312
33
34
  layrz_sdk/entities/static_position.py,sha256=xTbTWRPQLZqTgPQnyIMOoMHiNi42AzmVRfgDMM4m03c,365
34
35
  layrz_sdk/entities/text_alignment.py,sha256=YqUqj07c4XzHZLdaqNw1FEUpneWoJU5UU3eicC5-Sps,496
35
- layrz_sdk/entities/trigger.py,sha256=fDcF72awhwk43j9heE053QneYk4rUfdm3RY2hitP91w,318
36
+ layrz_sdk/entities/trigger.py,sha256=o8hN781yq2A0oDujeFs1b-elA9-pMP6F2cXHGsc_3y4,344
36
37
  layrz_sdk/entities/user.py,sha256=S2mJoW44xbBe-O3I_ajy5l4V9-azVLUfKvcfsuqfodQ,236
37
38
  layrz_sdk/entities/waypoint.py,sha256=Wx4uFzKVXKTuSgu8wiDpvqGFtG3c1_owk1-M9APlpj8,550
38
39
  layrz_sdk/entities/broadcast/__init__.py,sha256=Q1fIeDj1oAL63Q0JDddkW_FuP826-Im6ScwUUwAZIOM,372
39
- layrz_sdk/entities/broadcast/payload.py,sha256=KX6mjogSpDW_tCedioanQukcE1sFJaAv_PRqdAU50qA,1371
40
+ layrz_sdk/entities/broadcast/payload.py,sha256=QQXw2r-DHTkRoht9lRekNB93QUU2M7X852KHlMn6LF8,1556
40
41
  layrz_sdk/entities/broadcast/request.py,sha256=MQb9kyDSAMXtp4_sPOamBsYyCVZ02wj8NXmi8IEmM68,260
41
42
  layrz_sdk/entities/broadcast/response.py,sha256=hK3D05pecln9wbkdGr892Kzmd7bMzjsaayPxzJPVHsw,263
42
43
  layrz_sdk/entities/broadcast/result.py,sha256=07P7cE6LCBpw8jlgmyVsGxBmRpO4A7Jva5hpLh-n5U0,656
@@ -83,8 +84,8 @@ layrz_sdk/helpers/__init__.py,sha256=5iW3z2m3jrYhvTfxX-p-QTkR9X9oTKfEsbtVOg9jFFY
83
84
  layrz_sdk/helpers/color.py,sha256=dlpMafbM-4Wd9D9hMbbnZJf4ALkpie_ZmBR2Vz_YCmM,1203
84
85
  layrz_sdk/lcl/__init__.py,sha256=U967AWANkL3u_YVxMNAYlh8jkZ6hqHfStacz7yz6sOA,89
85
86
  layrz_sdk/lcl/core.py,sha256=T80A3hL7SeqRNSfl5SrPAgwIEf-enoAVv9ldwJNzqsA,24786
86
- layrz_sdk-3.1.28.dist-info/licenses/LICENSE,sha256=d5ZrU--lIPER7QByXDKcrtOTOMk1JvN_9FdYDuoWi7Y,1057
87
- layrz_sdk-3.1.28.dist-info/METADATA,sha256=eJDUV8mlIyOiJo1lofR4pOPzgaU48sODsJNVtR7hUcw,2084
88
- layrz_sdk-3.1.28.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
89
- layrz_sdk-3.1.28.dist-info/top_level.txt,sha256=yUTMMzfdZ0HDWQH5TaSlFM4xtwmP1fSGxmlL1dmu4l4,10
90
- layrz_sdk-3.1.28.dist-info/RECORD,,
87
+ layrz_sdk-3.1.30.dist-info/licenses/LICENSE,sha256=d5ZrU--lIPER7QByXDKcrtOTOMk1JvN_9FdYDuoWi7Y,1057
88
+ layrz_sdk-3.1.30.dist-info/METADATA,sha256=51ocymdwdfko92SKMObxHFNmSLL1DxF8nO370SskhK0,2084
89
+ layrz_sdk-3.1.30.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
90
+ layrz_sdk-3.1.30.dist-info/top_level.txt,sha256=yUTMMzfdZ0HDWQH5TaSlFM4xtwmP1fSGxmlL1dmu4l4,10
91
+ layrz_sdk-3.1.30.dist-info/RECORD,,