@kusinta/iot-schema 0.2.0-beta.6 → 0.2.0-beta.60

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.
Files changed (73) hide show
  1. package/package.json +44 -29
  2. package/src/kusinta/iot/access/v1/acl_pb.d.ts +146 -2
  3. package/src/kusinta/iot/access/v1/acl_pb.js +19 -2
  4. package/src/kusinta/iot/access/v1/roles_pb.d.ts +160 -4
  5. package/src/kusinta/iot/access/v1/roles_pb.js +128 -5
  6. package/src/kusinta/iot/accountlink/v1/account_link_pb.d.ts +591 -0
  7. package/src/kusinta/iot/accountlink/v1/account_link_pb.js +160 -0
  8. package/src/kusinta/iot/climate/v1/climate_pb.d.ts +1695 -0
  9. package/src/kusinta/iot/climate/v1/climate_pb.js +292 -0
  10. package/src/kusinta/iot/commissioning/v1/commissioning_pb.d.ts +1642 -0
  11. package/src/kusinta/iot/commissioning/v1/commissioning_pb.js +339 -0
  12. package/src/kusinta/iot/common/v1/pairing_pb.d.ts +24 -4
  13. package/src/kusinta/iot/common/v1/pairing_pb.js +1 -1
  14. package/src/kusinta/iot/common/v1/types_pb.d.ts +235 -0
  15. package/src/kusinta/iot/common/v1/types_pb.js +84 -2
  16. package/src/kusinta/iot/connector/v1/connector_pb.d.ts +713 -3
  17. package/src/kusinta/iot/connector/v1/connector_pb.js +107 -16
  18. package/src/kusinta/iot/device/v1/cluster_state_pb.d.ts +213 -1
  19. package/src/kusinta/iot/device/v1/cluster_state_pb.js +37 -2
  20. package/src/kusinta/iot/device/v1/descriptor_pb.d.ts +32 -4
  21. package/src/kusinta/iot/device/v1/descriptor_pb.js +2 -1
  22. package/src/kusinta/iot/device/v1/device_event_pb.d.ts +89 -5
  23. package/src/kusinta/iot/device/v1/device_event_pb.js +1 -1
  24. package/src/kusinta/iot/device/v1/device_pb.d.ts +444 -11
  25. package/src/kusinta/iot/device/v1/device_pb.js +74 -2
  26. package/src/kusinta/iot/device/v1/properties_pb.d.ts +26 -5
  27. package/src/kusinta/iot/device/v1/properties_pb.js +1 -1
  28. package/src/kusinta/iot/device/v1/property_update_pb.d.ts +46 -2
  29. package/src/kusinta/iot/device/v1/property_update_pb.js +2 -1
  30. package/src/kusinta/iot/heating/v1/heating_pb.d.ts +659 -0
  31. package/src/kusinta/iot/heating/v1/heating_pb.js +119 -0
  32. package/src/kusinta/iot/link/v1/link_pb.d.ts +438 -0
  33. package/src/kusinta/iot/link/v1/link_pb.js +121 -0
  34. package/src/kusinta/iot/planning/v1/planning_pb.d.ts +199 -0
  35. package/src/kusinta/iot/planning/v1/planning_pb.js +48 -0
  36. package/src/kusinta/iot/planning/v1/planning_service_pb.d.ts +121 -0
  37. package/src/kusinta/iot/planning/v1/planning_service_pb.js +38 -0
  38. package/src/kusinta/iot/registration/v1/registration_pb.d.ts +18 -0
  39. package/src/kusinta/iot/registration/v1/registration_pb.js +1 -1
  40. package/src/kusinta/iot/reporting/v1/reporting_pb.d.ts +1263 -0
  41. package/src/kusinta/iot/reporting/v1/reporting_pb.js +238 -0
  42. package/src/kusinta/iot/reporting/v1/reporting_service_pb.d.ts +63 -0
  43. package/src/kusinta/iot/reporting/v1/reporting_service_pb.js +24 -0
  44. package/src/kusinta/iot/signaling/v1/signaling_pb.d.ts +939 -7
  45. package/src/kusinta/iot/signaling/v1/signaling_pb.js +163 -4
  46. package/src/kusinta/iot/signaling/v1/signaling_service_pb.d.ts +24 -1
  47. package/src/kusinta/iot/signaling/v1/signaling_service_pb.js +1 -1
  48. package/src/kusinta/iot/space/v1/space_pb.d.ts +218 -3
  49. package/src/kusinta/iot/space/v1/space_pb.js +25 -2
  50. package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.d.ts +15 -0
  51. package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.js +1 -1
  52. package/src/kusinta/iot/vendor/lorawan/v1/lorawan_pb.d.ts +69 -0
  53. package/src/kusinta/iot/vendor/lorawan/v1/lorawan_pb.js +19 -0
  54. package/src/kusinta/iot/vendor/v1/vendor_options_pb.d.ts +5 -4
  55. package/src/kusinta/iot/vendor/v1/vendor_options_pb.js +5 -4
  56. package/src/kusinta/iot/webrtc/v1/app_token_pb.d.ts +48 -5
  57. package/src/kusinta/iot/webrtc/v1/app_token_pb.js +1 -1
  58. package/src/kusinta/iot/webrtc/v1/command_pb.d.ts +56 -0
  59. package/src/kusinta/iot/webrtc/v1/command_pb.js +1 -1
  60. package/src/kusinta/iot/webrtc/v1/device_state_pb.d.ts +179 -5
  61. package/src/kusinta/iot/webrtc/v1/device_state_pb.js +34 -5
  62. package/src/kusinta/iot/webrtc/v1/envelope_pb.d.ts +603 -13
  63. package/src/kusinta/iot/webrtc/v1/envelope_pb.js +61 -4
  64. package/src/kusinta/iot/webrtc/v1/household_pb.d.ts +613 -0
  65. package/src/kusinta/iot/webrtc/v1/household_pb.js +134 -0
  66. package/src/kusinta/iot/webrtc/v1/invite_pb.d.ts +502 -0
  67. package/src/kusinta/iot/webrtc/v1/invite_pb.js +108 -0
  68. package/src/kusinta/iot/webrtc/v1/management_pb.d.ts +2595 -75
  69. package/src/kusinta/iot/webrtc/v1/management_pb.js +382 -5
  70. package/src/kusinta/iot/webrtc/v1/members_pb.d.ts +582 -0
  71. package/src/kusinta/iot/webrtc/v1/members_pb.js +113 -0
  72. package/src/kusinta/iot/webrtc/v1/permission_push_pb.d.ts +66 -4
  73. package/src/kusinta/iot/webrtc/v1/permission_push_pb.js +9 -1
@@ -8,7 +8,7 @@ import { enumDesc, fileDesc, tsEnum } from "@bufbuild/protobuf/codegenv2";
8
8
  * Describes the file kusinta/iot/access/v1/roles.proto.
9
9
  */
10
10
  export const file_kusinta_iot_access_v1_roles = /*@__PURE__*/
11
- fileDesc("CiFrdXNpbnRhL2lvdC9hY2Nlc3MvdjEvcm9sZXMucHJvdG8SFWt1c2ludGEuaW90LmFjY2Vzcy52MSp1CgRSb2xlEhQKEFJPTEVfVU5TUEVDSUZJRUQQABIRCg1ST0xFX1JFU0lERU5UEAESFwoTUk9MRV9QUk9QRVJUWV9PV05FUhACEhMKD1JPTEVfVEVDSE5JQ0lBThADEhYKElJPTEVfR0FURVdBWV9BRE1JThAEKq0BChBQZXJtaXNzaW9uQWN0aW9uEiEKHVBFUk1JU1NJT05fQUNUSU9OX1VOU1BFQ0lGSUVEEAASGgoWUEVSTUlTU0lPTl9BQ1RJT05fUkVBRBABEhsKF1BFUk1JU1NJT05fQUNUSU9OX1dSSVRFEAISHwobUEVSTUlTU0lPTl9BQ1RJT05fU1VCU0NSSUJFEAMSHAoYUEVSTUlTU0lPTl9BQ1RJT05fSU5WT0tFEARCAkgBYgZwcm90bzM");
11
+ fileDesc("CiFrdXNpbnRhL2lvdC9hY2Nlc3MvdjEvcm9sZXMucHJvdG8SFWt1c2ludGEuaW90LmFjY2Vzcy52MSp1CgRSb2xlEhQKEFJPTEVfVU5TUEVDSUZJRUQQABIRCg1ST0xFX1JFU0lERU5UEAESFwoTUk9MRV9QUk9QRVJUWV9PV05FUhACEhMKD1JPTEVfVEVDSE5JQ0lBThADEhYKElJPTEVfR0FURVdBWV9BRE1JThAEKq0BChBQZXJtaXNzaW9uQWN0aW9uEiEKHVBFUk1JU1NJT05fQUNUSU9OX1VOU1BFQ0lGSUVEEAASGgoWUEVSTUlTU0lPTl9BQ1RJT05fUkVBRBABEhsKF1BFUk1JU1NJT05fQUNUSU9OX1dSSVRFEAISHwobUEVSTUlTU0lPTl9BQ1RJT05fU1VCU0NSSUJFEAMSHAoYUEVSTUlTU0lPTl9BQ1RJT05fSU5WT0tFEAQqpQEKEk1lbWJlcnNoaXBSZWxhdGlvbhIjCh9NRU1CRVJTSElQX1JFTEFUSU9OX1VOU1BFQ0lGSUVEEAASIAocTUVNQkVSU0hJUF9SRUxBVElPTl9SRVNJREVOVBABEh8KG01FTUJFUlNISVBfUkVMQVRJT05fU0VSVklDRRACEicKI01FTUJFUlNISVBfUkVMQVRJT05fSE9VU0VIT0xEX0FETUlOEANCAkgBYgZwcm90bzM");
12
12
 
13
13
  /**
14
14
  * Describes the enum kusinta.iot.access.v1.Role.
@@ -28,10 +28,13 @@ export const RoleSchema = /*@__PURE__*/
28
28
  * The gateway resolves the two together into DeviceAcl.allowed_actions, per device. A
29
29
  * role narrows what may appear there; it does not put anything there on its own.
30
30
  *
31
- * Carried in the app's token as webrtc.v1.AppTokenClaims.roles, as an array of proto3
32
- * canonical enum NAME strings (e.g. ["ROLE_RESIDENT", "ROLE_GATEWAY_ADMIN"]) rather than
33
- * integers, so the claim stays self-describing. A user may hold several at once and the
34
- * effective ceiling is their union.
31
+ * The building-server gateway holds each user's roles itself and authorises from what it
32
+ * holds. The one role it cannot know is the administration of the organisation that owns it,
33
+ * which the api-server keeps: that one it takes from the app's token
34
+ * (webrtc.v1.AppTokenClaims.roles), and the api-server tells it who those administrators are
35
+ * (signaling.v1.VouchedAdministrators), which can end that administration but never grant it. The api-server learns the rest from the gateway
36
+ * (reporting.v1.GatewayMember). A user may hold several at once and the effective ceiling is
37
+ * their union.
35
38
  *
36
39
  * UNORDERED. These are categories, not levels: a technician is not "more than" a
37
40
  * resident, and there is no >= comparison to make between them. Anything needing a graded
@@ -43,6 +46,15 @@ export const RoleSchema = /*@__PURE__*/
43
46
  * gateway-wide role alone would not grant. That widening is the gateway's to apply and is
44
47
  * visible to the app only in the resolved DeviceAcl.
45
48
  *
49
+ * STAFF. A user who holds ROLE_TECHNICIAN, ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN on a
50
+ * gateway is staff there: they serve the building rather than live in it. Wherever this
51
+ * schema says "staff" or "a staff member" it means exactly that, as the gateway holds roles,
52
+ * every vouched administrator included; holding ROLE_RESIDENT besides changes nothing. The
53
+ * term carries one rule about people: staff are named to whoever may list every member; a
54
+ * resident is named only to the people they live with; and where anyone lives is told by
55
+ * user id only to their own household, and to anyone else only under a residency id
56
+ * (MembershipRelation, RESIDENCY IDS).
57
+ *
46
58
  * @generated from enum kusinta.iot.access.v1.Role
47
59
  */
48
60
  export const Role = /*@__PURE__*/
@@ -70,3 +82,114 @@ export const PermissionActionSchema = /*@__PURE__*/
70
82
  export const PermissionAction = /*@__PURE__*/
71
83
  tsEnum(PermissionActionSchema);
72
84
 
85
+ /**
86
+ * Describes the enum kusinta.iot.access.v1.MembershipRelation.
87
+ */
88
+ export const MembershipRelationSchema = /*@__PURE__*/
89
+ enumDesc(file_kusinta_iot_access_v1_roles, 2);
90
+
91
+ /**
92
+ * How a member stands to a space they are filed in. Held per membership — set by
93
+ * webrtc.v1.AssignUserToSpace — unlike Role, which is gateway-wide. The two are independent:
94
+ * a technician who lives in an apartment is filed on it as RESIDENT, and a resident who
95
+ * looks after a building's plant room is filed there as SERVICE. RESIDENT is refused on a
96
+ * room: a home's residents live in all of it.
97
+ *
98
+ * HOUSEHOLD ADMIN. HOUSEHOLD_ADMIN is RESIDENT and more: a resident who also governs the
99
+ * home (webrtc.v1 household.proto). It is held on an apartment and nowhere else, and is never
100
+ * a role: the app's token, and every role the gateway holds, are the same with it as without
101
+ * it. Wherever this schema says RESIDENT, a resident or a home's residents, it means
102
+ * HOUSEHOLD_ADMIN too, unless it names HOUSEHOLD_ADMIN apart: what a household admin sees of
103
+ * the home, and when from, is exactly what a resident sees. A change between RESIDENT and
104
+ * HOUSEHOLD_ADMIN on the same apartment continues the residency below, with its id and its
105
+ * since; it is no relation change in the sense the residency rules use.
106
+ *
107
+ * A HOME is an apartment and the rooms in it. What a user learns of a home depends on how
108
+ * they reach it; where several apply, the first wins:
109
+ *
110
+ * * As its resident — RESIDENT on the apartment. They see and operate everything filed
111
+ * in it, and its history from the start of their current residency, never before: a new
112
+ * tenant does not read the previous one's, nor learn when or by whom anything was
113
+ * changed before they moved in: every time from before that a home's rooms and devices
114
+ * carry — a reading's timestamp included — is unset for them, save a
115
+ * webrtc.v1.ServiceStatus, which always carries its times and so gives none before the first
116
+ * quarter hour of their residency, from that quarter hour on.
117
+ * * As an installer under a commissioning grant on the home, while it is active — the
118
+ * service view below, and on top of it what commissioning.v1 (GRANTS) lists: the home's
119
+ * commissioning and heating records, its devices' write behaviours to bind outputs by
120
+ * (device.v1.AttributeBehaviour), and the readings a test they run is judged by while it
121
+ * runs. Never its history, savings, comfort settings or device events, nor who lives
122
+ * there.
123
+ * * As service — SERVICE on the apartment, a room in it, or a building or floor above it,
124
+ * or as the gateway's administrator. Of the building's own devices in what they reach of
125
+ * the home — any
126
+ * device no person owns — they see what each is and a webrtc.v1.ServiceStatus,
127
+ * evaluated each quarter hour, and no reading, event or time of the device itself; they
128
+ * operate none of them. Of what they reach of the home — from the room they are filed
129
+ * on, or all of it — they see how its rooms are set up, with
130
+ * RoomClimate.state_withheld marking what is not shown, and its links with
131
+ * DeviceLink.details_withheld; modes on a home are not sent to them at all — save that the
132
+ * property owner and the gateway administrators are sent an empty home's rooms and modes
133
+ * in full, and its floor zones (webrtc.v1 household.proto, EMPTY HOME). Service
134
+ * that reaches the apartment itself also gets its climate summary over the disclosed
135
+ * period. What they newly see of the home reaches them as it happens; what they lose,
136
+ * at once.
137
+ * * Not at all — RESIDENT on a building or floor above it. Living in a building is not
138
+ * living in every apartment in it.
139
+ *
140
+ * What was recorded while a room or device was in a home stays with the home after it
141
+ * leaves: its history, and the times and people it carries from then, are never given to
142
+ * whoever reaches it later.
143
+ *
144
+ * A residency starts when a user is assigned RESIDENT on an apartment while not already its
145
+ * resident — a membership recorded with no relation included, so its holder starts afresh —
146
+ * and ends with any other change to that membership. Assigning RESIDENT to a resident
147
+ * changes nothing. A space becoming an apartment starts the residency of each RESIDENT
148
+ * member on it, and ceasing to be one ends it — though it releases no device: what is no
149
+ * longer a home holds nobody's devices for a next tenant. A device in a space becoming an
150
+ * apartment, owned by someone who is not to be its resident, is taken out of that space.
151
+ *
152
+ * A device filed in a home counts as in the home wherever else it is also filed, a device a
153
+ * resident owns included: reaching it through another space shows it to nobody. A link
154
+ * never joins a device in a home to one outside it. Outside homes the relation changes
155
+ * nothing: what is filed there is visible to whoever reaches it. A device owned as RESIDENT
156
+ * is the exception everywhere, whoever owns it: it is visible to its owner and the RESIDENT
157
+ * members filed on the space it is filed in — for a device in a home, the home's residents
158
+ * alone, wherever else it is filed; never those who merely reach a space from above — and
159
+ * to nobody else. An owner who stops living in the home it is filed in gives it up: it is
160
+ * released, with no owner, and stays filed in the home alone, as one of the building's own
161
+ * devices there. A device given up so, or released, then appears to service as any device
162
+ * newly in the home does, as it happens; that much a release shows.
163
+ *
164
+ * Who may change a home's members, move its spaces or file devices into and out of it is
165
+ * restricted by the gateway, and a refused caller gets NOT_ENTITLED; within the household it
166
+ * is its household admins' (webrtc.v1 household.proto). This keeps a home's
167
+ * life — its readings, history and modes — from anyone but its residents by default; those
168
+ * who service the building get the service view above and no more. It does not keep the
169
+ * property owner or the administrator out by force — they hold the building's filing
170
+ * authority and the gateway itself — but it makes their seeing in a deliberate act on the
171
+ * home, such as filing themselves on it, rather than something handed out by default. They
172
+ * remove a resident who moves out, so they are shown every residency, and since when
173
+ * (webrtc.v1.ListGatewayMembers), but never who holds it (see RESIDENCY IDS).
174
+ *
175
+ * RESIDENCY IDS. To a caller who does not live in the home, a RESIDENT membership is told
176
+ * only under its residency id: an id the gateway mints for that residency alone, when it
177
+ * begins, holds for as long as it lasts unbroken, and never reuses. It is opaque, begins
178
+ * with "residency:", and is never a user's id or derived from one, so nothing told under it
179
+ * ties the residency to a name, a role or another membership — and nothing changes it when
180
+ * the person who holds it becomes staff or stops being staff (Role, STAFF). A relation
181
+ * change, or the residency ending, ends its id. The people of the home see one another
182
+ * under their user ids. Where a request below names a member, it says whether a residency
183
+ * id may stand for one; a request that does not say so refuses one as INVALID_REQUEST, so
184
+ * that no user is ever made under one.
185
+ *
186
+ * A membership recorded with no relation, made before relations existed, sees no more than
187
+ * either relation would where it is held: on an apartment or a room, a home as service; on a
188
+ * building or floor, no home at all. It is listed with UNSPECIFIED so that it can be found
189
+ * and assigned again.
190
+ *
191
+ * @generated from enum kusinta.iot.access.v1.MembershipRelation
192
+ */
193
+ export const MembershipRelation = /*@__PURE__*/
194
+ tsEnum(MembershipRelationSchema);
195
+