@kusinta/iot-schema 0.1.0-beta.9 → 0.2.0-beta.1

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 (46) hide show
  1. package/package.json +13 -2
  2. package/src/kusinta/iot/access/v1/acl_pb.d.ts +100 -11
  3. package/src/kusinta/iot/access/v1/acl_pb.js +11 -4
  4. package/src/kusinta/iot/access/v1/roles_pb.d.ts +27 -0
  5. package/src/kusinta/iot/access/v1/roles_pb.js +4 -0
  6. package/src/kusinta/iot/connector/v1/connector_pb.d.ts +60 -30
  7. package/src/kusinta/iot/connector/v1/connector_pb.js +12 -11
  8. package/src/kusinta/iot/connector/v1/connector_service_pb.d.ts +5 -5
  9. package/src/kusinta/iot/connector/v1/connector_service_pb.js +1 -1
  10. package/src/kusinta/iot/device/v1/cluster_state_pb.d.ts +238 -0
  11. package/src/kusinta/iot/device/v1/cluster_state_pb.js +54 -0
  12. package/src/kusinta/iot/device/v1/descriptor_pb.d.ts +37 -8
  13. package/src/kusinta/iot/device/v1/descriptor_pb.js +2 -1
  14. package/src/kusinta/iot/device/v1/device_event_pb.d.ts +162 -0
  15. package/src/kusinta/iot/device/v1/device_event_pb.js +45 -0
  16. package/src/kusinta/iot/device/v1/device_pb.d.ts +154 -28
  17. package/src/kusinta/iot/device/v1/device_pb.js +10 -2
  18. package/src/kusinta/iot/device/v1/matter_options_pb.d.ts +84 -0
  19. package/src/kusinta/iot/device/v1/matter_options_pb.js +91 -0
  20. package/src/kusinta/iot/device/v1/properties_pb.d.ts +228 -207
  21. package/src/kusinta/iot/device/v1/properties_pb.js +9 -1
  22. package/src/kusinta/iot/device/v1/property_update_pb.d.ts +197 -8
  23. package/src/kusinta/iot/device/v1/property_update_pb.js +20 -2
  24. package/src/kusinta/iot/registration/v1/registration_pb.d.ts +170 -0
  25. package/src/kusinta/iot/registration/v1/registration_pb.js +61 -0
  26. package/src/kusinta/iot/registration/v1/registration_service_pb.d.ts +34 -0
  27. package/src/kusinta/iot/registration/v1/registration_service_pb.js +19 -0
  28. package/src/kusinta/iot/signaling/v1/signaling_pb.d.ts +320 -0
  29. package/src/kusinta/iot/signaling/v1/signaling_pb.js +83 -0
  30. package/src/kusinta/iot/signaling/v1/signaling_service_pb.d.ts +34 -0
  31. package/src/kusinta/iot/signaling/v1/signaling_service_pb.js +19 -0
  32. package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.d.ts +65 -47
  33. package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.js +8 -7
  34. package/src/kusinta/iot/vendor/v1/vendor_options_pb.d.ts +50 -0
  35. package/src/kusinta/iot/vendor/v1/vendor_options_pb.js +53 -0
  36. package/src/kusinta/iot/webrtc/v1/app_token_pb.d.ts +152 -0
  37. package/src/kusinta/iot/webrtc/v1/app_token_pb.js +28 -0
  38. package/src/kusinta/iot/webrtc/v1/command_pb.d.ts +269 -39
  39. package/src/kusinta/iot/webrtc/v1/command_pb.js +28 -2
  40. package/src/kusinta/iot/webrtc/v1/device_state_pb.d.ts +65 -2
  41. package/src/kusinta/iot/webrtc/v1/device_state_pb.js +16 -1
  42. package/src/kusinta/iot/webrtc/v1/envelope_pb.d.ts +368 -21
  43. package/src/kusinta/iot/webrtc/v1/envelope_pb.js +68 -5
  44. package/src/kusinta/iot/webrtc/v1/management_pb.d.ts +451 -0
  45. package/src/kusinta/iot/webrtc/v1/management_pb.js +106 -0
  46. package/src/kusinta/iot/webrtc/v1/permission_push_pb.d.ts +7 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kusinta/iot-schema",
3
- "version": "0.1.0-beta.9",
3
+ "version": "0.2.0-beta.1",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "files": ["src"],
@@ -14,13 +14,24 @@
14
14
  "./device": "./src/kusinta/iot/device/v1/device_pb.js",
15
15
  "./device/descriptor": "./src/kusinta/iot/device/v1/descriptor_pb.js",
16
16
  "./device/properties": "./src/kusinta/iot/device/v1/properties_pb.js",
17
+ "./device/matter-options": "./src/kusinta/iot/device/v1/matter_options_pb.js",
17
18
  "./device/property-update": "./src/kusinta/iot/device/v1/property_update_pb.js",
19
+ "./device/cluster-state": "./src/kusinta/iot/device/v1/cluster_state_pb.js",
20
+ "./device/event": "./src/kusinta/iot/device/v1/device_event_pb.js",
21
+ "./vendor/options": "./src/kusinta/iot/vendor/v1/vendor_options_pb.js",
22
+ "./vendor/homematic": "./src/kusinta/iot/vendor/homematic/v1/homematic_pb.js",
18
23
  "./space": "./src/kusinta/iot/space/v1/space_pb.js",
19
24
  "./access": "./src/kusinta/iot/access/v1/acl_pb.js",
20
25
  "./access/roles": "./src/kusinta/iot/access/v1/roles_pb.js",
21
26
  "./connector": "./src/kusinta/iot/connector/v1/connector_pb.js",
22
27
  "./connector/service": "./src/kusinta/iot/connector/v1/connector_service_pb.js",
23
- "./webrtc": "./src/kusinta/iot/webrtc/v1/envelope_pb.js"
28
+ "./webrtc": "./src/kusinta/iot/webrtc/v1/envelope_pb.js",
29
+ "./webrtc/app-token": "./src/kusinta/iot/webrtc/v1/app_token_pb.js",
30
+ "./webrtc/management": "./src/kusinta/iot/webrtc/v1/management_pb.js",
31
+ "./registration": "./src/kusinta/iot/registration/v1/registration_pb.js",
32
+ "./registration/service": "./src/kusinta/iot/registration/v1/registration_service_pb.js",
33
+ "./signaling": "./src/kusinta/iot/signaling/v1/signaling_pb.js",
34
+ "./signaling/service": "./src/kusinta/iot/signaling/v1/signaling_service_pb.js"
24
35
  },
25
36
  "dependencies": {
26
37
  "@bufbuild/protobuf": "^2.12.0"
@@ -13,9 +13,81 @@ import type { Timestamp } from "@bufbuild/protobuf/wkt";
13
13
  */
14
14
  export declare const file_kusinta_iot_access_v1_acl: GenFile;
15
15
 
16
+ /**
17
+ * AttributeRef names one attribute on one endpoint. It is the schema's single way to say
18
+ * "this attribute of this device" — used to grant it, to bound it, to read it and to write
19
+ * it, so a consumer writes one matcher rather than several that must agree.
20
+ *
21
+ * Addressed exactly as device.v1.PropertyUpdate is, and for the same reasons:
22
+ *
23
+ * * cluster_id and attribute_id are NUMERIC and are what resolution matches. Attribute
24
+ * names repeat across clusters — MeasuredValue is Temperature (0x0402), Relative
25
+ * Humidity (0x0405) and Pressure (0x0403) — and a numeric pair is what the
26
+ * (matter_cluster_id)/(matter_attribute_id) annotations carry, so nothing has to be
27
+ * parsed or looked up to compare them.
28
+ * * attribute_name is advisory: the attribute's own spelling, for logs and rendering. It
29
+ * is NOT matched on the Matter branch. On the vendor branch it is the only address
30
+ * there is, and there it is authoritative.
31
+ * * endpoint_id matters because a device presents several endpoints, often of the same
32
+ * device type: all four channels of a 4-channel actuator are OnOff on cluster 0x0006,
33
+ * so a reference without one cannot tell channel 1 from channel 3.
34
+ *
35
+ * What an ABSENT endpoint_id means is decided by the field holding this message, not here,
36
+ * and the current holders mean opposite things on purpose — see
37
+ * DeviceAcl.allowed_attribute_refs and PropertyConstraint.attribute. It is optional on the
38
+ * wire so that "not stated" is representable and rejectable, rather than a bare uint32
39
+ * decoding an omission to endpoint 0, which is the Matter root node.
40
+ *
41
+ * @generated from message kusinta.iot.access.v1.AttributeRef
42
+ */
43
+ export declare type AttributeRef = Message<"kusinta.iot.access.v1.AttributeRef"> & {
44
+ /**
45
+ * Advisory on the Matter branch, authoritative on the vendor branch. See above.
46
+ *
47
+ * @generated from field: string attribute_name = 1;
48
+ */
49
+ attributeName: string;
50
+
51
+ /**
52
+ * Matter branch. Both required there, both unset on the vendor branch.
53
+ *
54
+ * @generated from field: uint32 cluster_id = 2;
55
+ */
56
+ clusterId: number;
57
+
58
+ /**
59
+ * @generated from field: uint32 attribute_id = 4;
60
+ */
61
+ attributeId: number;
62
+
63
+ /**
64
+ * @generated from field: optional uint32 endpoint_id = 3;
65
+ */
66
+ endpointId?: number | undefined;
67
+
68
+ /**
69
+ * Set to name a vendor parameter instead of a Matter attribute, by its
70
+ * (vendor_extension) key. Then attribute_name addresses it and cluster_id/attribute_id
71
+ * play no part — a vendor parameter has no Matter cluster and no numeric ID in any
72
+ * specification.
73
+ *
74
+ * Without this a vendor parameter could be reported but never granted, bounded or
75
+ * written: a valve position would be all-or-nothing for permissions, which would undo
76
+ * most of the point of making vendor extensions reachable at all.
77
+ *
78
+ * @generated from field: optional string vendor_extension = 5;
79
+ */
80
+ vendorExtension?: string | undefined;
81
+ };
82
+
83
+ /**
84
+ * Describes the message kusinta.iot.access.v1.AttributeRef.
85
+ * Use `create(AttributeRefSchema)` to create a new message.
86
+ */
87
+ export declare const AttributeRefSchema: GenMessage<AttributeRef>;
88
+
16
89
  /**
17
90
  * PropertyConstraint bounds a single Matter cluster attribute.
18
- * attribute_name uses PascalCase Matter attribute naming (e.g. "MaxHeatSetpointLimit").
19
91
  * MaxHeatSetpointLimit and MinHeatSetpointLimit are actual Matter Thermostat cluster
20
92
  * attributes (0x0016, 0x0015) — the gateway writes them directly via the connector.
21
93
  *
@@ -23,9 +95,14 @@ export declare const file_kusinta_iot_access_v1_acl: GenFile;
23
95
  */
24
96
  export declare type PropertyConstraint = Message<"kusinta.iot.access.v1.PropertyConstraint"> & {
25
97
  /**
26
- * @generated from field: string attribute_name = 1;
98
+ * An absent AttributeRef.endpoint_id here means EVERY endpoint of the device — the
99
+ * opposite of what it means on a grant, deliberately. A constraint is a restriction, so
100
+ * omission broadens what is restricted; a grant is permission, so omission there would
101
+ * broaden access and is invalid instead. Both defaults fail safe.
102
+ *
103
+ * @generated from field: kusinta.iot.access.v1.AttributeRef attribute = 8;
27
104
  */
28
- attributeName: string;
105
+ attribute?: AttributeRef | undefined;
29
106
 
30
107
  /**
31
108
  * @generated from oneof kusinta.iot.access.v1.PropertyConstraint.constraint
@@ -55,11 +132,6 @@ export declare type PropertyConstraint = Message<"kusinta.iot.access.v1.Property
55
132
  value: number;
56
133
  case: "uintMin";
57
134
  } | { case: undefined; value?: undefined };
58
-
59
- /**
60
- * @generated from field: string cluster_id_hex = 6;
61
- */
62
- clusterIdHex: string;
63
135
  };
64
136
 
65
137
  /**
@@ -88,16 +160,33 @@ export declare type DeviceAcl = Message<"kusinta.iot.access.v1.DeviceAcl"> & {
88
160
  role: Role;
89
161
 
90
162
  /**
163
+ * What this user may do to this device. EMPTY GRANTS NOTHING — an ACL with no actions
164
+ * permits no operation at all.
165
+ *
166
+ * Deliberately the opposite default to allowed_attribute_refs below, which is empty for
167
+ * "every attribute". The two are not the same kind of list: this one IS the grant, so an
168
+ * empty grant is empty, while that one is a FILTER narrowing the grant, so an empty
169
+ * filter narrows nothing. Reading either as the other fails open.
170
+ *
171
+ * PERMISSION_ACTION_UNSPECIFIED in this list is invalid and MUST be rejected; it is not
172
+ * a wildcard. See roles.proto for what each action authorizes.
173
+ *
91
174
  * @generated from field: repeated kusinta.iot.access.v1.PermissionAction allowed_actions = 4;
92
175
  */
93
176
  allowedActions: PermissionAction[];
94
177
 
95
178
  /**
96
- * empty = all attributes allowed
179
+ * Narrows allowed_actions to particular attributes. Empty = every attribute on every
180
+ * endpoint, unchanged in meaning from the field it replaces — an empty filter narrows
181
+ * nothing. It does NOT grant anything on its own: with allowed_actions empty, this
182
+ * being empty still permits no operation.
183
+ *
184
+ * A ref present with no endpoint_id is INVALID and MUST be rejected, not read as a grant
185
+ * over every endpoint: omission must never be what widens access.
97
186
  *
98
- * @generated from field: repeated string allowed_attributes = 5;
187
+ * @generated from field: repeated kusinta.iot.access.v1.AttributeRef allowed_attribute_refs = 7;
99
188
  */
100
- allowedAttributes: string[];
189
+ allowedAttributeRefs: AttributeRef[];
101
190
 
102
191
  /**
103
192
  * @generated from field: repeated kusinta.iot.access.v1.PropertyConstraint property_constraints = 6;
@@ -11,26 +11,33 @@ import { file_kusinta_iot_access_v1_roles } from "./roles_pb.js";
11
11
  * Describes the file kusinta/iot/access/v1/acl.proto.
12
12
  */
13
13
  export const file_kusinta_iot_access_v1_acl = /*@__PURE__*/
14
- fileDesc("Ch9rdXNpbnRhL2lvdC9hY2Nlc3MvdjEvYWNsLnByb3RvEhVrdXNpbnRhLmlvdC5hY2Nlc3MudjEioAEKElByb3BlcnR5Q29uc3RyYWludBIWCg5hdHRyaWJ1dGVfbmFtZRgBIAEoCRIRCgdpbnRfbWF4GAIgASgRSAASEQoHaW50X21pbhgDIAEoEUgAEhIKCHVpbnRfbWF4GAQgASgNSAASEgoIdWludF9taW4YBSABKA1IABIWCg5jbHVzdGVyX2lkX2hleBgGIAEoCUIMCgpjb25zdHJhaW50IsUCCglEZXZpY2VBY2wSNAoJZGV2aWNlX2lkGAEgASgLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSMAoHdXNlcl9pZBgCIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIpCgRyb2xlGAMgASgOMhsua3VzaW50YS5pb3QuYWNjZXNzLnYxLlJvbGUSQAoPYWxsb3dlZF9hY3Rpb25zGAQgAygOMicua3VzaW50YS5pb3QuYWNjZXNzLnYxLlBlcm1pc3Npb25BY3Rpb24SGgoSYWxsb3dlZF9hdHRyaWJ1dGVzGAUgAygJEkcKFHByb3BlcnR5X2NvbnN0cmFpbnRzGAYgAygLMikua3VzaW50YS5pb3QuYWNjZXNzLnYxLlByb3BlcnR5Q29uc3RyYWludCLlAQoURWZmZWN0aXZlUGVybWlzc2lvbnMSMAoHdXNlcl9pZBgBIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBI2CgpnYXRld2F5X2lkGAIgASgLMiIua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuR2F0ZXdheUlkEjUKC2RldmljZV9hY2xzGAMgAygLMiAua3VzaW50YS5pb3QuYWNjZXNzLnYxLkRldmljZUFjbBIsCgh2YWxpZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_identity_v1_identity, file_kusinta_iot_access_v1_roles]);
14
+ fileDesc("Ch9rdXNpbnRhL2lvdC9hY2Nlc3MvdjEvYWNsLnByb3RvEhVrdXNpbnRhLmlvdC5hY2Nlc3MudjEirgEKDEF0dHJpYnV0ZVJlZhIWCg5hdHRyaWJ1dGVfbmFtZRgBIAEoCRISCgpjbHVzdGVyX2lkGAIgASgNEhQKDGF0dHJpYnV0ZV9pZBgEIAEoDRIYCgtlbmRwb2ludF9pZBgDIAEoDUgAiAEBEh0KEHZlbmRvcl9leHRlbnNpb24YBSABKAlIAYgBAUIOCgxfZW5kcG9pbnRfaWRCEwoRX3ZlbmRvcl9leHRlbnNpb24i5wEKElByb3BlcnR5Q29uc3RyYWludBI2CglhdHRyaWJ1dGUYCCABKAsyIy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuQXR0cmlidXRlUmVmEhEKB2ludF9tYXgYAiABKBFIABIRCgdpbnRfbWluGAMgASgRSAASEgoIdWludF9tYXgYBCABKA1IABISCgh1aW50X21pbhgFIAEoDUgAQgwKCmNvbnN0cmFpbnRKBAgBEAJKBAgGEAdKBAgHEAhSDmF0dHJpYnV0ZV9uYW1lUg5jbHVzdGVyX2lkX2hleFILZW5kcG9pbnRfaWQiiAMKCURldmljZUFjbBI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIwCgd1c2VyX2lkGAIgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEikKBHJvbGUYAyABKA4yGy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuUm9sZRJACg9hbGxvd2VkX2FjdGlvbnMYBCADKA4yJy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuUGVybWlzc2lvbkFjdGlvbhJDChZhbGxvd2VkX2F0dHJpYnV0ZV9yZWZzGAcgAygLMiMua3VzaW50YS5pb3QuYWNjZXNzLnYxLkF0dHJpYnV0ZVJlZhJHChRwcm9wZXJ0eV9jb25zdHJhaW50cxgGIAMoCzIpLmt1c2ludGEuaW90LmFjY2Vzcy52MS5Qcm9wZXJ0eUNvbnN0cmFpbnRKBAgFEAZSEmFsbG93ZWRfYXR0cmlidXRlcyLlAQoURWZmZWN0aXZlUGVybWlzc2lvbnMSMAoHdXNlcl9pZBgBIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBI2CgpnYXRld2F5X2lkGAIgASgLMiIua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuR2F0ZXdheUlkEjUKC2RldmljZV9hY2xzGAMgAygLMiAua3VzaW50YS5pb3QuYWNjZXNzLnYxLkRldmljZUFjbBIsCgh2YWxpZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_identity_v1_identity, file_kusinta_iot_access_v1_roles]);
15
+
16
+ /**
17
+ * Describes the message kusinta.iot.access.v1.AttributeRef.
18
+ * Use `create(AttributeRefSchema)` to create a new message.
19
+ */
20
+ export const AttributeRefSchema = /*@__PURE__*/
21
+ messageDesc(file_kusinta_iot_access_v1_acl, 0);
15
22
 
16
23
  /**
17
24
  * Describes the message kusinta.iot.access.v1.PropertyConstraint.
18
25
  * Use `create(PropertyConstraintSchema)` to create a new message.
19
26
  */
20
27
  export const PropertyConstraintSchema = /*@__PURE__*/
21
- messageDesc(file_kusinta_iot_access_v1_acl, 0);
28
+ messageDesc(file_kusinta_iot_access_v1_acl, 1);
22
29
 
23
30
  /**
24
31
  * Describes the message kusinta.iot.access.v1.DeviceAcl.
25
32
  * Use `create(DeviceAclSchema)` to create a new message.
26
33
  */
27
34
  export const DeviceAclSchema = /*@__PURE__*/
28
- messageDesc(file_kusinta_iot_access_v1_acl, 1);
35
+ messageDesc(file_kusinta_iot_access_v1_acl, 2);
29
36
 
30
37
  /**
31
38
  * Describes the message kusinta.iot.access.v1.EffectivePermissions.
32
39
  * Use `create(EffectivePermissionsSchema)` to create a new message.
33
40
  */
34
41
  export const EffectivePermissionsSchema = /*@__PURE__*/
35
- messageDesc(file_kusinta_iot_access_v1_acl, 2);
42
+ messageDesc(file_kusinta_iot_access_v1_acl, 3);
36
43
 
@@ -45,30 +45,57 @@ export enum Role {
45
45
  export declare const RoleSchema: GenEnum<Role>;
46
46
 
47
47
  /**
48
+ * What a user may do to a device, as listed in DeviceAcl.allowed_actions. Each value
49
+ * names an operation that exists on the app leg, so a grant can be checked against the
50
+ * message that arrived.
51
+ *
48
52
  * @generated from enum kusinta.iot.access.v1.PermissionAction
49
53
  */
50
54
  export enum PermissionAction {
51
55
  /**
56
+ * Names no action. Present only because buf's ENUM_ZERO_VALUE_SUFFIX requires a zero
57
+ * value; it is not a wildcard and carries no permission.
58
+ *
59
+ * In allowed_actions it is INVALID and MUST be rejected — never read as "any action".
60
+ * Omission must never be what widens access.
61
+ *
52
62
  * @generated from enum value: PERMISSION_ACTION_UNSPECIFIED = 0;
53
63
  */
54
64
  UNSPECIFIED = 0,
55
65
 
56
66
  /**
67
+ * Read an attribute once, on demand: webrtc.v1.PropertyReadRequest.
68
+ *
57
69
  * @generated from enum value: PERMISSION_ACTION_READ = 1;
58
70
  */
59
71
  READ = 1,
60
72
 
61
73
  /**
74
+ * Write an attribute directly.
75
+ *
76
+ * NOTE: no message on the app leg does this. AppMessage carries handshake, command,
77
+ * read_request, ping, subscribe, unsubscribe and management — nothing that writes an
78
+ * attribute, so the only thing that changes a device is a DeviceCommand, which is
79
+ * INVOKE. This value therefore authorizes an operation that does not yet exist. It is
80
+ * kept rather than reserved because a direct attribute write is a plausible addition
81
+ * and burning the number would gain nothing; until then, granting it grants nothing.
82
+ *
62
83
  * @generated from enum value: PERMISSION_ACTION_WRITE = 2;
63
84
  */
64
85
  WRITE = 2,
65
86
 
66
87
  /**
88
+ * Receive attribute changes as they happen: webrtc.v1.AppMessage.subscribe and the
89
+ * DevicePropertyEvent stream that follows. Distinct from READ — observing is a standing
90
+ * interest in a device, not a single question about it.
91
+ *
67
92
  * @generated from enum value: PERMISSION_ACTION_OBSERVE = 3;
68
93
  */
69
94
  OBSERVE = 3,
70
95
 
71
96
  /**
97
+ * Send a webrtc.v1.DeviceCommand. This is the action that moves hardware.
98
+ *
72
99
  * @generated from enum value: PERMISSION_ACTION_INVOKE = 4;
73
100
  */
74
101
  INVOKE = 4,
@@ -29,6 +29,10 @@ export const PermissionActionSchema = /*@__PURE__*/
29
29
  enumDesc(file_kusinta_iot_access_v1_roles, 1);
30
30
 
31
31
  /**
32
+ * What a user may do to a device, as listed in DeviceAcl.allowed_actions. Each value
33
+ * names an operation that exists on the app leg, so a grant can be checked against the
34
+ * message that arrived.
35
+ *
32
36
  * @generated from enum kusinta.iot.access.v1.PermissionAction
33
37
  */
34
38
  export const PermissionAction = /*@__PURE__*/
@@ -6,10 +6,11 @@ import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
6
  import type { Message } from "@bufbuild/protobuf";
7
7
  import type { ConnectorId, DeviceId, GatewayId } from "../../identity/v1/identity_pb.js";
8
8
  import type { ConnectorTransport } from "../../common/v1/types_pb.js";
9
- import type { DeviceDescriptor } from "../../device/v1/descriptor_pb.js";
9
+ import type { Device } from "../../device/v1/device_pb.js";
10
10
  import type { Timestamp } from "@bufbuild/protobuf/wkt";
11
11
  import type { PropertyUpdateBatch } from "../../device/v1/property_update_pb.js";
12
- import type { DeviceCommand } from "../../webrtc/v1/command_pb.js";
12
+ import type { DeviceEventBatch } from "../../device/v1/device_event_pb.js";
13
+ import type { AttributeWriteRequest, DeviceCommand } from "../../webrtc/v1/command_pb.js";
13
14
 
14
15
  /**
15
16
  * Describes the file kusinta/iot/connector/v1/connector.proto.
@@ -69,9 +70,9 @@ export declare type ConnectorHandshake = Message<"kusinta.iot.connector.v1.Conne
69
70
  info?: ConnectorInfo | undefined;
70
71
 
71
72
  /**
72
- * @generated from field: repeated kusinta.iot.device.v1.DeviceDescriptor known_devices = 2;
73
+ * @generated from field: repeated kusinta.iot.device.v1.Device known_devices = 2;
73
74
  */
74
- knownDevices: DeviceDescriptor[];
75
+ knownDevices: Device[];
75
76
  };
76
77
 
77
78
  /**
@@ -107,13 +108,20 @@ export declare type HandshakeAck = Message<"kusinta.iot.connector.v1.HandshakeAc
107
108
  export declare const HandshakeAckSchema: GenMessage<HandshakeAck>;
108
109
 
109
110
  /**
111
+ * A device the connector has found. Carries the full Device, not just its descriptor,
112
+ * because a device's endpoints are what say which Matter device types it presents — and
113
+ * without them the gateway cannot resolve any PropertyUpdate the device goes on to send.
114
+ *
115
+ * Properties may be unset on every endpoint; that means the device exists and has
116
+ * reported nothing yet, which is the normal state at announcement.
117
+ *
110
118
  * @generated from message kusinta.iot.connector.v1.DeviceAnnouncement
111
119
  */
112
120
  export declare type DeviceAnnouncement = Message<"kusinta.iot.connector.v1.DeviceAnnouncement"> & {
113
121
  /**
114
- * @generated from field: kusinta.iot.device.v1.DeviceDescriptor descriptor = 1;
122
+ * @generated from field: kusinta.iot.device.v1.Device device = 2;
115
123
  */
116
- descriptor?: DeviceDescriptor | undefined;
124
+ device?: Device | undefined;
117
125
  };
118
126
 
119
127
  /**
@@ -202,11 +210,11 @@ export declare type GatewayError = Message<"kusinta.iot.connector.v1.GatewayErro
202
210
  message: string;
203
211
 
204
212
  /**
205
- * non-empty if the error is in response to a command
213
+ * non-empty if the error answers a command or a write
206
214
  *
207
- * @generated from field: string command_id = 3;
215
+ * @generated from field: string request_id = 3;
208
216
  */
209
- commandId: string;
217
+ requestId: string;
210
218
  };
211
219
 
212
220
  /**
@@ -216,13 +224,20 @@ export declare type GatewayError = Message<"kusinta.iot.connector.v1.GatewayErro
216
224
  export declare const GatewayErrorSchema: GenMessage<GatewayError>;
217
225
 
218
226
  /**
219
- * @generated from message kusinta.iot.connector.v1.CommandResult
227
+ * A connector's answer to an executed command OR attribute write. One message for both:
228
+ * the two operations differ in what they do to a device, not in how a connector reports
229
+ * having done it, and request_id says which request this answers either way.
230
+ *
231
+ * @generated from message kusinta.iot.connector.v1.ConnectorCommandResult
220
232
  */
221
- export declare type CommandResult = Message<"kusinta.iot.connector.v1.CommandResult"> & {
233
+ export declare type ConnectorCommandResult = Message<"kusinta.iot.connector.v1.ConnectorCommandResult"> & {
222
234
  /**
223
- * @generated from field: string command_id = 1;
235
+ * Was command_id. Renamed with webrtc.v1.DeviceCommand.request_id, which it mirrors, and
236
+ * because it now correlates writes as well as commands.
237
+ *
238
+ * @generated from field: string request_id = 1;
224
239
  */
225
- commandId: string;
240
+ requestId: string;
226
241
 
227
242
  /**
228
243
  * @generated from field: bool success = 2;
@@ -241,15 +256,15 @@ export declare type CommandResult = Message<"kusinta.iot.connector.v1.CommandRes
241
256
  };
242
257
 
243
258
  /**
244
- * Describes the message kusinta.iot.connector.v1.CommandResult.
245
- * Use `create(CommandResultSchema)` to create a new message.
259
+ * Describes the message kusinta.iot.connector.v1.ConnectorCommandResult.
260
+ * Use `create(ConnectorCommandResultSchema)` to create a new message.
246
261
  */
247
- export declare const CommandResultSchema: GenMessage<CommandResult>;
262
+ export declare const ConnectorCommandResultSchema: GenMessage<ConnectorCommandResult>;
248
263
 
249
264
  /**
250
- * @generated from message kusinta.iot.connector.v1.ConnectRequest
265
+ * @generated from message kusinta.iot.connector.v1.SessionRequest
251
266
  */
252
- export declare type ConnectRequest = Message<"kusinta.iot.connector.v1.ConnectRequest"> & {
267
+ export declare type SessionRequest = Message<"kusinta.iot.connector.v1.SessionRequest"> & {
253
268
  /**
254
269
  * @generated from field: string message_id = 1;
255
270
  */
@@ -261,7 +276,7 @@ export declare type ConnectRequest = Message<"kusinta.iot.connector.v1.ConnectRe
261
276
  sentAt?: Timestamp | undefined;
262
277
 
263
278
  /**
264
- * @generated from oneof kusinta.iot.connector.v1.ConnectRequest.payload
279
+ * @generated from oneof kusinta.iot.connector.v1.SessionRequest.payload
265
280
  */
266
281
  payload: {
267
282
  /**
@@ -289,9 +304,9 @@ export declare type ConnectRequest = Message<"kusinta.iot.connector.v1.ConnectRe
289
304
  case: "deviceRemoved";
290
305
  } | {
291
306
  /**
292
- * @generated from field: kusinta.iot.connector.v1.CommandResult command_result = 7;
307
+ * @generated from field: kusinta.iot.connector.v1.ConnectorCommandResult command_result = 7;
293
308
  */
294
- value: CommandResult;
309
+ value: ConnectorCommandResult;
295
310
  case: "commandResult";
296
311
  } | {
297
312
  /**
@@ -299,19 +314,25 @@ export declare type ConnectRequest = Message<"kusinta.iot.connector.v1.ConnectRe
299
314
  */
300
315
  value: HeartBeat;
301
316
  case: "heartbeat";
317
+ } | {
318
+ /**
319
+ * @generated from field: kusinta.iot.device.v1.DeviceEventBatch device_events = 9;
320
+ */
321
+ value: DeviceEventBatch;
322
+ case: "deviceEvents";
302
323
  } | { case: undefined; value?: undefined };
303
324
  };
304
325
 
305
326
  /**
306
- * Describes the message kusinta.iot.connector.v1.ConnectRequest.
307
- * Use `create(ConnectRequestSchema)` to create a new message.
327
+ * Describes the message kusinta.iot.connector.v1.SessionRequest.
328
+ * Use `create(SessionRequestSchema)` to create a new message.
308
329
  */
309
- export declare const ConnectRequestSchema: GenMessage<ConnectRequest>;
330
+ export declare const SessionRequestSchema: GenMessage<SessionRequest>;
310
331
 
311
332
  /**
312
- * @generated from message kusinta.iot.connector.v1.ConnectResponse
333
+ * @generated from message kusinta.iot.connector.v1.SessionResponse
313
334
  */
314
- export declare type ConnectResponse = Message<"kusinta.iot.connector.v1.ConnectResponse"> & {
335
+ export declare type SessionResponse = Message<"kusinta.iot.connector.v1.SessionResponse"> & {
315
336
  /**
316
337
  * @generated from field: string message_id = 1;
317
338
  */
@@ -323,7 +344,7 @@ export declare type ConnectResponse = Message<"kusinta.iot.connector.v1.ConnectR
323
344
  sentAt?: Timestamp | undefined;
324
345
 
325
346
  /**
326
- * @generated from oneof kusinta.iot.connector.v1.ConnectResponse.payload
347
+ * @generated from oneof kusinta.iot.connector.v1.SessionResponse.payload
327
348
  */
328
349
  payload: {
329
350
  /**
@@ -355,12 +376,21 @@ export declare type ConnectResponse = Message<"kusinta.iot.connector.v1.ConnectR
355
376
  */
356
377
  value: DeviceCommand;
357
378
  case: "executeCommand";
379
+ } | {
380
+ /**
381
+ * The connector-leg half of PERMISSION_ACTION_WRITE. A sibling case rather than another
382
+ * meaning overloaded onto execute_command, which is the mistake this replaces.
383
+ *
384
+ * @generated from field: kusinta.iot.webrtc.v1.AttributeWriteRequest execute_attribute_write = 9;
385
+ */
386
+ value: AttributeWriteRequest;
387
+ case: "executeAttributeWrite";
358
388
  } | { case: undefined; value?: undefined };
359
389
  };
360
390
 
361
391
  /**
362
- * Describes the message kusinta.iot.connector.v1.ConnectResponse.
363
- * Use `create(ConnectResponseSchema)` to create a new message.
392
+ * Describes the message kusinta.iot.connector.v1.SessionResponse.
393
+ * Use `create(SessionResponseSchema)` to create a new message.
364
394
  */
365
- export declare const ConnectResponseSchema: GenMessage<ConnectResponse>;
395
+ export declare const SessionResponseSchema: GenMessage<SessionResponse>;
366
396
 
@@ -6,7 +6,8 @@ import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
6
6
  import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
7
7
  import { file_kusinta_iot_common_v1_types } from "../../common/v1/types_pb.js";
8
8
  import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identity_pb.js";
9
- import { file_kusinta_iot_device_v1_descriptor } from "../../device/v1/descriptor_pb.js";
9
+ import { file_kusinta_iot_device_v1_device } from "../../device/v1/device_pb.js";
10
+ import { file_kusinta_iot_device_v1_device_event } from "../../device/v1/device_event_pb.js";
10
11
  import { file_kusinta_iot_device_v1_property_update } from "../../device/v1/property_update_pb.js";
11
12
  import { file_kusinta_iot_webrtc_v1_command } from "../../webrtc/v1/command_pb.js";
12
13
 
@@ -14,7 +15,7 @@ import { file_kusinta_iot_webrtc_v1_command } from "../../webrtc/v1/command_pb.j
14
15
  * Describes the file kusinta/iot/connector/v1/connector.proto.
15
16
  */
16
17
  export const file_kusinta_iot_connector_v1_connector = /*@__PURE__*/
17
- fileDesc("CihrdXNpbnRhL2lvdC9jb25uZWN0b3IvdjEvY29ubmVjdG9yLnByb3RvEhhrdXNpbnRhLmlvdC5jb25uZWN0b3IudjEi5QEKDUNvbm5lY3RvckluZm8SOgoMY29ubmVjdG9yX2lkGAEgASgLMiQua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuQ29ubmVjdG9ySWQSFAoMZGlzcGxheV9uYW1lGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSPAoJdHJhbnNwb3J0GAQgASgOMikua3VzaW50YS5pb3QuY29tbW9uLnYxLkNvbm5lY3RvclRyYW5zcG9ydBIQCghlbmRwb2ludBgFIAEoCRIhChlzdXBwb3J0ZWRfZGV2aWNlX3R5cGVfaWRzGAYgAygNIosBChJDb25uZWN0b3JIYW5kc2hha2USNQoEaW5mbxgBIAEoCzInLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5Db25uZWN0b3JJbmZvEj4KDWtub3duX2RldmljZXMYAiADKAsyJy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGV2aWNlRGVzY3JpcHRvciJoCgxIYW5kc2hha2VBY2sSEAoIYWNjZXB0ZWQYASABKAgSDgoGcmVhc29uGAIgASgJEjYKCmdhdGV3YXlfaWQYAyABKAsyIi5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5HYXRld2F5SWQiUQoSRGV2aWNlQW5ub3VuY2VtZW50EjsKCmRlc2NyaXB0b3IYASABKAsyJy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGV2aWNlRGVzY3JpcHRvciJVCg1EZXZpY2VSZW1vdmFsEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEg4KBnJlYXNvbhgCIAEoCSILCglIZWFydEJlYXQiRwoPU3Vic2NyaWJlRGV2aWNlEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkIkkKEVVuc3Vic2NyaWJlRGV2aWNlEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkIkEKDEdhdGV3YXlFcnJvchIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEgoKY29tbWFuZF9pZBgDIAEoCSKdAQoNQ29tbWFuZFJlc3VsdBISCgpjb21tYW5kX2lkGAEgASgJEg8KB3N1Y2Nlc3MYAiABKAgSNQoFZXJyb3IYAyABKAsyJi5rdXNpbnRhLmlvdC5jb25uZWN0b3IudjEuR2F0ZXdheUVycm9yEjAKDGNvbXBsZXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi8AMKDkNvbm5lY3RSZXF1ZXN0EhIKCm1lc3NhZ2VfaWQYASABKAkSKwoHc2VudF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQQoJaGFuZHNoYWtlGAMgASgLMiwua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkNvbm5lY3RvckhhbmRzaGFrZUgAEkUKD3Byb3BlcnR5X3VwZGF0ZRgEIAEoCzIqLmt1c2ludGEuaW90LmRldmljZS52MS5Qcm9wZXJ0eVVwZGF0ZUJhdGNoSAASSAoQZGV2aWNlX2Fubm91bmNlZBgFIAEoCzIsLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5EZXZpY2VBbm5vdW5jZW1lbnRIABJBCg5kZXZpY2VfcmVtb3ZlZBgGIAEoCzInLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5EZXZpY2VSZW1vdmFsSAASQQoOY29tbWFuZF9yZXN1bHQYByABKAsyJy5rdXNpbnRhLmlvdC5jb25uZWN0b3IudjEuQ29tbWFuZFJlc3VsdEgAEjgKCWhlYXJ0YmVhdBgIIAEoCzIjLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5IZWFydEJlYXRIAEIJCgdwYXlsb2FkIqIDCg9Db25uZWN0UmVzcG9uc2USEgoKbWVzc2FnZV9pZBgBIAEoCRIrCgdzZW50X2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI/Cg1oYW5kc2hha2VfYWNrGAMgASgLMiYua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkhhbmRzaGFrZUFja0gAEj4KCXN1YnNjcmliZRgFIAEoCzIpLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5TdWJzY3JpYmVEZXZpY2VIABJCCgt1bnN1YnNjcmliZRgGIAEoCzIrLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5VbnN1YnNjcmliZURldmljZUgAEjcKBWVycm9yGAcgASgLMiYua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkdhdGV3YXlFcnJvckgAEj8KD2V4ZWN1dGVfY29tbWFuZBgIIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5EZXZpY2VDb21tYW5kSABCCQoHcGF5bG9hZEoECAQQBUICSAFiBnByb3RvMw", [file_google_protobuf_timestamp, file_kusinta_iot_common_v1_types, file_kusinta_iot_identity_v1_identity, file_kusinta_iot_device_v1_descriptor, file_kusinta_iot_device_v1_property_update, file_kusinta_iot_webrtc_v1_command]);
18
+ fileDesc("CihrdXNpbnRhL2lvdC9jb25uZWN0b3IvdjEvY29ubmVjdG9yLnByb3RvEhhrdXNpbnRhLmlvdC5jb25uZWN0b3IudjEi5QEKDUNvbm5lY3RvckluZm8SOgoMY29ubmVjdG9yX2lkGAEgASgLMiQua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuQ29ubmVjdG9ySWQSFAoMZGlzcGxheV9uYW1lGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSPAoJdHJhbnNwb3J0GAQgASgOMikua3VzaW50YS5pb3QuY29tbW9uLnYxLkNvbm5lY3RvclRyYW5zcG9ydBIQCghlbmRwb2ludBgFIAEoCRIhChlzdXBwb3J0ZWRfZGV2aWNlX3R5cGVfaWRzGAYgAygNIoEBChJDb25uZWN0b3JIYW5kc2hha2USNQoEaW5mbxgBIAEoCzInLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5Db25uZWN0b3JJbmZvEjQKDWtub3duX2RldmljZXMYAiADKAsyHS5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGV2aWNlImgKDEhhbmRzaGFrZUFjaxIQCghhY2NlcHRlZBgBIAEoCBIOCgZyZWFzb24YAiABKAkSNgoKZ2F0ZXdheV9pZBgDIAEoCzIiLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkdhdGV3YXlJZCJVChJEZXZpY2VBbm5vdW5jZW1lbnQSLQoGZGV2aWNlGAIgASgLMh0ua3VzaW50YS5pb3QuZGV2aWNlLnYxLkRldmljZUoECAEQAlIKZGVzY3JpcHRvciJVCg1EZXZpY2VSZW1vdmFsEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEg4KBnJlYXNvbhgCIAEoCSILCglIZWFydEJlYXQiRwoPU3Vic2NyaWJlRGV2aWNlEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkIkkKEVVuc3Vic2NyaWJlRGV2aWNlEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkIkEKDEdhdGV3YXlFcnJvchIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEgoKcmVxdWVzdF9pZBgDIAEoCSKmAQoWQ29ubmVjdG9yQ29tbWFuZFJlc3VsdBISCgpyZXF1ZXN0X2lkGAEgASgJEg8KB3N1Y2Nlc3MYAiABKAgSNQoFZXJyb3IYAyABKAsyJi5rdXNpbnRhLmlvdC5jb25uZWN0b3IudjEuR2F0ZXdheUVycm9yEjAKDGNvbXBsZXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiuwQKDlNlc3Npb25SZXF1ZXN0EhIKCm1lc3NhZ2VfaWQYASABKAkSKwoHc2VudF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQQoJaGFuZHNoYWtlGAMgASgLMiwua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkNvbm5lY3RvckhhbmRzaGFrZUgAEkUKD3Byb3BlcnR5X3VwZGF0ZRgEIAEoCzIqLmt1c2ludGEuaW90LmRldmljZS52MS5Qcm9wZXJ0eVVwZGF0ZUJhdGNoSAASSAoQZGV2aWNlX2Fubm91bmNlZBgFIAEoCzIsLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5EZXZpY2VBbm5vdW5jZW1lbnRIABJBCg5kZXZpY2VfcmVtb3ZlZBgGIAEoCzInLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5EZXZpY2VSZW1vdmFsSAASSgoOY29tbWFuZF9yZXN1bHQYByABKAsyMC5rdXNpbnRhLmlvdC5jb25uZWN0b3IudjEuQ29ubmVjdG9yQ29tbWFuZFJlc3VsdEgAEjgKCWhlYXJ0YmVhdBgIIAEoCzIjLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5IZWFydEJlYXRIABJACg1kZXZpY2VfZXZlbnRzGAkgASgLMicua3VzaW50YS5pb3QuZGV2aWNlLnYxLkRldmljZUV2ZW50QmF0Y2hIAEIJCgdwYXlsb2FkIvMDCg9TZXNzaW9uUmVzcG9uc2USEgoKbWVzc2FnZV9pZBgBIAEoCRIrCgdzZW50X2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI/Cg1oYW5kc2hha2VfYWNrGAMgASgLMiYua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkhhbmRzaGFrZUFja0gAEj4KCXN1YnNjcmliZRgFIAEoCzIpLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5TdWJzY3JpYmVEZXZpY2VIABJCCgt1bnN1YnNjcmliZRgGIAEoCzIrLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5VbnN1YnNjcmliZURldmljZUgAEjcKBWVycm9yGAcgASgLMiYua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkdhdGV3YXlFcnJvckgAEj8KD2V4ZWN1dGVfY29tbWFuZBgIIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5EZXZpY2VDb21tYW5kSAASTwoXZXhlY3V0ZV9hdHRyaWJ1dGVfd3JpdGUYCSABKAsyLC5rdXNpbnRhLmlvdC53ZWJydGMudjEuQXR0cmlidXRlV3JpdGVSZXF1ZXN0SABCCQoHcGF5bG9hZEoECAQQBUICSAFiBnByb3RvMw", [file_google_protobuf_timestamp, file_kusinta_iot_common_v1_types, file_kusinta_iot_identity_v1_identity, file_kusinta_iot_device_v1_device, file_kusinta_iot_device_v1_device_event, file_kusinta_iot_device_v1_property_update, file_kusinta_iot_webrtc_v1_command]);
18
19
 
19
20
  /**
20
21
  * Describes the message kusinta.iot.connector.v1.ConnectorInfo.
@@ -80,23 +81,23 @@ export const GatewayErrorSchema = /*@__PURE__*/
80
81
  messageDesc(file_kusinta_iot_connector_v1_connector, 8);
81
82
 
82
83
  /**
83
- * Describes the message kusinta.iot.connector.v1.CommandResult.
84
- * Use `create(CommandResultSchema)` to create a new message.
84
+ * Describes the message kusinta.iot.connector.v1.ConnectorCommandResult.
85
+ * Use `create(ConnectorCommandResultSchema)` to create a new message.
85
86
  */
86
- export const CommandResultSchema = /*@__PURE__*/
87
+ export const ConnectorCommandResultSchema = /*@__PURE__*/
87
88
  messageDesc(file_kusinta_iot_connector_v1_connector, 9);
88
89
 
89
90
  /**
90
- * Describes the message kusinta.iot.connector.v1.ConnectRequest.
91
- * Use `create(ConnectRequestSchema)` to create a new message.
91
+ * Describes the message kusinta.iot.connector.v1.SessionRequest.
92
+ * Use `create(SessionRequestSchema)` to create a new message.
92
93
  */
93
- export const ConnectRequestSchema = /*@__PURE__*/
94
+ export const SessionRequestSchema = /*@__PURE__*/
94
95
  messageDesc(file_kusinta_iot_connector_v1_connector, 10);
95
96
 
96
97
  /**
97
- * Describes the message kusinta.iot.connector.v1.ConnectResponse.
98
- * Use `create(ConnectResponseSchema)` to create a new message.
98
+ * Describes the message kusinta.iot.connector.v1.SessionResponse.
99
+ * Use `create(SessionResponseSchema)` to create a new message.
99
100
  */
100
- export const ConnectResponseSchema = /*@__PURE__*/
101
+ export const SessionResponseSchema = /*@__PURE__*/
101
102
  messageDesc(file_kusinta_iot_connector_v1_connector, 11);
102
103
 
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
 
5
5
  import type { GenFile, GenService } from "@bufbuild/protobuf/codegenv2";
6
- import type { ConnectRequestSchema, ConnectResponseSchema } from "./connector_pb.js";
6
+ import type { SessionRequestSchema, SessionResponseSchema } from "./connector_pb.js";
7
7
 
8
8
  /**
9
9
  * Describes the file kusinta/iot/connector/v1/connector_service.proto.
@@ -18,12 +18,12 @@ export declare const file_kusinta_iot_connector_v1_connector_service: GenFile;
18
18
  */
19
19
  export declare const ConnectorGatewayService: GenService<{
20
20
  /**
21
- * @generated from rpc kusinta.iot.connector.v1.ConnectorGatewayService.Connect
21
+ * @generated from rpc kusinta.iot.connector.v1.ConnectorGatewayService.Session
22
22
  */
23
- connect: {
23
+ session: {
24
24
  methodKind: "bidi_streaming";
25
- input: typeof ConnectRequestSchema;
26
- output: typeof ConnectResponseSchema;
25
+ input: typeof SessionRequestSchema;
26
+ output: typeof SessionResponseSchema;
27
27
  },
28
28
  }>;
29
29
 
@@ -9,7 +9,7 @@ import { file_kusinta_iot_connector_v1_connector } from "./connector_pb.js";
9
9
  * Describes the file kusinta/iot/connector/v1/connector_service.proto.
10
10
  */
11
11
  export const file_kusinta_iot_connector_v1_connector_service = /*@__PURE__*/
12
- fileDesc("CjBrdXNpbnRhL2lvdC9jb25uZWN0b3IvdjEvY29ubmVjdG9yX3NlcnZpY2UucHJvdG8SGGt1c2ludGEuaW90LmNvbm5lY3Rvci52MTJ9ChdDb25uZWN0b3JHYXRld2F5U2VydmljZRJiCgdDb25uZWN0Eigua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkNvbm5lY3RSZXF1ZXN0Gikua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkNvbm5lY3RSZXNwb25zZSgBMAFCAkgBYgZwcm90bzM", [file_kusinta_iot_connector_v1_connector]);
12
+ fileDesc("CjBrdXNpbnRhL2lvdC9jb25uZWN0b3IvdjEvY29ubmVjdG9yX3NlcnZpY2UucHJvdG8SGGt1c2ludGEuaW90LmNvbm5lY3Rvci52MTJ9ChdDb25uZWN0b3JHYXRld2F5U2VydmljZRJiCgdTZXNzaW9uEigua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLlNlc3Npb25SZXF1ZXN0Gikua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLlNlc3Npb25SZXNwb25zZSgBMAFCAkgBYgZwcm90bzM", [file_kusinta_iot_connector_v1_connector]);
13
13
 
14
14
  /**
15
15
  * ConnectorGatewayService: connector dials the gateway on startup.