@kusinta/iot-schema 0.2.0-beta.21 → 0.2.0-beta.23
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.
- package/package.json +1 -1
- package/src/kusinta/iot/access/v1/acl_pb.d.ts +5 -7
- package/src/kusinta/iot/access/v1/roles_pb.d.ts +3 -3
- package/src/kusinta/iot/access/v1/roles_pb.js +3 -3
- package/src/kusinta/iot/common/v1/types_pb.d.ts +141 -0
- package/src/kusinta/iot/common/v1/types_pb.js +49 -1
- package/src/kusinta/iot/connector/v1/connector_pb.d.ts +270 -2
- package/src/kusinta/iot/connector/v1/connector_pb.js +53 -20
- package/src/kusinta/iot/reporting/v1/reporting_pb.d.ts +96 -17
- package/src/kusinta/iot/reporting/v1/reporting_pb.js +39 -1
- package/src/kusinta/iot/space/v1/space_pb.d.ts +1 -2
- package/src/kusinta/iot/webrtc/v1/device_state_pb.d.ts +7 -7
- package/src/kusinta/iot/webrtc/v1/envelope_pb.d.ts +53 -15
- package/src/kusinta/iot/webrtc/v1/envelope_pb.js +1 -1
- package/src/kusinta/iot/webrtc/v1/management_pb.d.ts +106 -14
- package/src/kusinta/iot/webrtc/v1/management_pb.js +9 -2
- package/src/kusinta/iot/webrtc/v1/permission_push_pb.d.ts +15 -18
|
@@ -11,7 +11,7 @@ import type { ManagementAck, ManagementRequest, PrivacyDisclosure, SpaceTree } f
|
|
|
11
11
|
import type { DeviceLink, DeviceLinkList } from "../../link/v1/link_pb.js";
|
|
12
12
|
import type { ApartmentClimateSummary, ClimateMode, RoomClimate, RoomClimateList, RoomHistory } from "../../climate/v1/climate_pb.js";
|
|
13
13
|
import type { PairingErrorDetail, PairingWindow } from "../../common/v1/pairing_pb.js";
|
|
14
|
-
import type { ConnectorKind, DeviceOwnershipType } from "../../common/v1/types_pb.js";
|
|
14
|
+
import type { BackendHealth, ConnectorKind, DeviceOwnershipType } from "../../common/v1/types_pb.js";
|
|
15
15
|
import type { Timestamp } from "@bufbuild/protobuf/wkt";
|
|
16
16
|
import type { DeviceAdded, DeviceRemoved, DeviceStateSnapshot, PropertyReport, ServiceStatusChanged } from "./device_state_pb.js";
|
|
17
17
|
import type { LivePermissionUpdate } from "./permission_push_pb.js";
|
|
@@ -485,8 +485,7 @@ export declare const PairingStartedSchema: GenMessage<PairingStarted>;
|
|
|
485
485
|
* One message per request, not per device: a batch window attributes several, and a client
|
|
486
486
|
* given one message each has nothing telling it the window is over and no defined moment to
|
|
487
487
|
* stop waiting. The devices are listed here; each also arrives as an ordinary DeviceAdded
|
|
488
|
-
* as it appears
|
|
489
|
-
* client may show them as they come and use this to finish.
|
|
488
|
+
* as it appears, so a client may show them as they come and use this to finish.
|
|
490
489
|
*
|
|
491
490
|
* An error and a non-empty device list are not exclusive. A batch of five that attributed
|
|
492
491
|
* three and then expired reports both — three devices and NO_DEVICE_APPEARED — because
|
|
@@ -540,11 +539,10 @@ export declare const PairingFinishedSchema: GenMessage<PairingFinished>;
|
|
|
540
539
|
*
|
|
541
540
|
* Sent only for links the recipient is entitled to see. An unfiltered one would say
|
|
542
541
|
* which devices exist and how they are arranged, to somebody entitled to neither. A link
|
|
543
|
-
* with an end in a home
|
|
544
|
-
*
|
|
545
|
-
*
|
|
546
|
-
*
|
|
547
|
-
* held it at a quarter hour since it was made, and to nobody else.
|
|
542
|
+
* with an end in a home reaches a recipient who sees it as service with details_withheld,
|
|
543
|
+
* and is pushed to them only when it appears and when it is removed — never for anything
|
|
544
|
+
* else, its state and settings included, which are not theirs to see. Its removal is pushed
|
|
545
|
+
* to them at once, as every loss is — to those who were shown it, and to nobody else.
|
|
548
546
|
*
|
|
549
547
|
* @generated from message kusinta.iot.webrtc.v1.LinkChanged
|
|
550
548
|
*/
|
|
@@ -641,6 +639,26 @@ export declare type ConnectorDescriptor = Message<"kusinta.iot.webrtc.v1.Connect
|
|
|
641
639
|
* @generated from field: string description = 8;
|
|
642
640
|
*/
|
|
643
641
|
description: string;
|
|
642
|
+
|
|
643
|
+
/**
|
|
644
|
+
* Whether the backend the connector drives is working, as the connector last reported it
|
|
645
|
+
* (see connector.v1.BackendHealthReport): state and category only — the connector's own
|
|
646
|
+
* detail stays in the gateway's logs. Unset when the connector has stated nothing, which
|
|
647
|
+
* reads as OK. FAILING is what opens a reporting.v1.PROBLEM_KIND_CONNECTOR_ERROR, and
|
|
648
|
+
* while it holds the app may offer ReconnectConnector.
|
|
649
|
+
*
|
|
650
|
+
* @generated from field: kusinta.iot.common.v1.BackendHealth backend_health = 9;
|
|
651
|
+
*/
|
|
652
|
+
backendHealth?: BackendHealth | undefined;
|
|
653
|
+
|
|
654
|
+
/**
|
|
655
|
+
* The connector can re-initialise its backend on request: ReconnectConnector is
|
|
656
|
+
* refused for any connector without it. Copied from the handshake, as the other
|
|
657
|
+
* capabilities are.
|
|
658
|
+
*
|
|
659
|
+
* @generated from field: bool supports_backend_reinitialize = 10;
|
|
660
|
+
*/
|
|
661
|
+
supportsBackendReinitialize: boolean;
|
|
644
662
|
};
|
|
645
663
|
|
|
646
664
|
/**
|
|
@@ -650,14 +668,17 @@ export declare type ConnectorDescriptor = Message<"kusinta.iot.webrtc.v1.Connect
|
|
|
650
668
|
export declare const ConnectorDescriptorSchema: GenMessage<ConnectorDescriptor>;
|
|
651
669
|
|
|
652
670
|
/**
|
|
653
|
-
* The connectors the gateway currently holds, gateway → app.
|
|
671
|
+
* The connectors the gateway currently holds, gateway → app: those connected now. A
|
|
672
|
+
* connector whose stream drops leaves the list, and its backend health with it; it is
|
|
673
|
+
* listed again when it reconnects. The app offers ReconnectConnector only for a listed
|
|
674
|
+
* connector.
|
|
654
675
|
*
|
|
655
676
|
* A push, not a ManagementResult arm: a new result-oneof member is a compile error
|
|
656
677
|
* in a consumer whose match on the result is exhaustive, whereas a new push case is
|
|
657
678
|
* absorbed by that switch's default. Sent on connect and whenever the set changes —
|
|
658
|
-
* a connector arriving, leaving,
|
|
659
|
-
* app's whole picture each time rather than being a delta,
|
|
660
|
-
* one re-syncs from the next.
|
|
679
|
+
* a connector arriving, leaving, revising its capabilities, or its backend health
|
|
680
|
+
* changing — and replaces the app's whole picture each time rather than being a delta,
|
|
681
|
+
* so a client that missed one re-syncs from the next.
|
|
661
682
|
*
|
|
662
683
|
* @generated from message kusinta.iot.webrtc.v1.ConnectorsAnnounced
|
|
663
684
|
*/
|
|
@@ -679,9 +700,9 @@ export declare const ConnectorsAnnouncedSchema: GenMessage<ConnectorsAnnounced>;
|
|
|
679
700
|
* held at, its condition. Apply as an upsert keyed on room.space_id. Sent only for rooms
|
|
680
701
|
* the recipient may see, and whenever any field the recipient is sent moves — a knob
|
|
681
702
|
* turned by hand shows up here without the app asking. To a recipient who sees the room
|
|
682
|
-
* as service, what is new is sent
|
|
683
|
-
*
|
|
684
|
-
*
|
|
703
|
+
* as service, what is new is sent as it happens and what is lost at once. A recipient who
|
|
704
|
+
* is sent the room with state_withheld is therefore not sent it when only withheld fields
|
|
705
|
+
* move.
|
|
685
706
|
*
|
|
686
707
|
* @generated from message kusinta.iot.webrtc.v1.RoomClimateChanged
|
|
687
708
|
*/
|
|
@@ -1015,6 +1036,23 @@ export enum GatewayErrorCode {
|
|
|
1015
1036
|
* @generated from enum value: GATEWAY_ERROR_CODE_SESSION_LIMIT_REACHED = 5;
|
|
1016
1037
|
*/
|
|
1017
1038
|
SESSION_LIMIT_REACHED = 5,
|
|
1039
|
+
|
|
1040
|
+
/**
|
|
1041
|
+
* The request was well formed and the caller may make it, but it will not succeed without
|
|
1042
|
+
* a change on the receiving side — a capability the target lacks, configuration only a
|
|
1043
|
+
* person can fix. Do not retry as is. Distinct from INVALID_REQUEST, which is the app's
|
|
1044
|
+
* bug, and from UNAVAILABLE, which clears on its own. GatewayError.metadata says which
|
|
1045
|
+
* precondition failed where the operation documents one. Sent only in answer to a request
|
|
1046
|
+
* whose operation documents it, never as a session-level error that refuses or ends a
|
|
1047
|
+
* session.
|
|
1048
|
+
*
|
|
1049
|
+
* Rollout note: a client whose schema predates this value decodes it as UNSPECIFIED,
|
|
1050
|
+
* which is retryable by design, so it may offer a retry that fails the same way again.
|
|
1051
|
+
* Harmless, but client handling should ship before or with the gateway that emits it.
|
|
1052
|
+
*
|
|
1053
|
+
* @generated from enum value: GATEWAY_ERROR_CODE_FAILED_PRECONDITION = 6;
|
|
1054
|
+
*/
|
|
1055
|
+
FAILED_PRECONDITION = 6,
|
|
1018
1056
|
}
|
|
1019
1057
|
|
|
1020
1058
|
/**
|
|
@@ -21,7 +21,7 @@ import { file_kusinta_iot_webrtc_v1_permission_push } from "./permission_push_pb
|
|
|
21
21
|
* Describes the file kusinta/iot/webrtc/v1/envelope.proto.
|
|
22
22
|
*/
|
|
23
23
|
export const file_kusinta_iot_webrtc_v1_envelope = /*@__PURE__*/
|
|
24
|
-
fileDesc("
|
|
24
|
+
fileDesc("CiRrdXNpbnRhL2lvdC93ZWJydGMvdjEvZW52ZWxvcGUucHJvdG8SFWt1c2ludGEuaW90LndlYnJ0Yy52MSIGCgRQaW5nIgYKBFBvbmciIwoRSGFuZHNoYWtlUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJIlwKDEFwcEhhbmRzaGFrZRILCgNqd3QYASABKAkSPwoUc3Vic2NyaWJlX2RldmljZV9pZHMYAiADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCJJChBTdWJzY3JpYmVEZXZpY2VzEjUKCmRldmljZV9pZHMYASADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCJLChJVbnN1YnNjcmliZURldmljZXMSNQoKZGV2aWNlX2lkcxgBIAMoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkIpMBChNSZWZ1c2VkU3Vic2NyaXB0aW9uEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjUKBGNvZGUYAiABKA4yJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2F0ZXdheUVycm9yQ29kZRIPCgdtZXNzYWdlGAMgASgJIpoBCg9TdWJzY3JpcHRpb25BY2sSEwoLaW5fcmVwbHlfdG8YASABKAkSNQoKc3Vic2NyaWJlZBgCIAMoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjsKB3JlZnVzZWQYAyADKAsyKi5rdXNpbnRhLmlvdC53ZWJydGMudjEuUmVmdXNlZFN1YnNjcmlwdGlvbiLRAQoTUHJvcGVydHlSZWFkUmVxdWVzdBI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIzCgZ0YXJnZXQYByABKAsyIy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuQXR0cmlidXRlUmVmSgQIAhAHUg5hdHRyaWJ1dGVfbmFtZVIOY2x1c3Rlcl9pZF9oZXhSCmNsdXN0ZXJfaWRSC2VuZHBvaW50X2lkUhB2ZW5kb3JfZXh0ZW5zaW9uIswBCgxHYXRld2F5RXJyb3ISNQoEY29kZRgBIAEoDjInLmt1c2ludGEuaW90LndlYnJ0Yy52MS5HYXRld2F5RXJyb3JDb2RlEg8KB21lc3NhZ2UYAiABKAkSQwoIbWV0YWRhdGEYAyADKAsyMS5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2F0ZXdheUVycm9yLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBItUEChBNYW5hZ2VtZW50UmVzdWx0EhMKC2luX3JlcGx5X3RvGAEgASgJEjQKBWVycm9yGAIgASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLkdhdGV3YXlFcnJvckgAEiwKBXNwYWNlGAMgASgLMhsua3VzaW50YS5pb3Quc3BhY2UudjEuU3BhY2VIABI2CgpzcGFjZV90cmVlGAQgASgLMiAua3VzaW50YS5pb3Qud2VicnRjLnYxLlNwYWNlVHJlZUgAEjMKA2FjaxgFIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5NYW5hZ2VtZW50QWNrSAASNAoFbGlua3MYBiABKAsyIy5rdXNpbnRhLmlvdC5saW5rLnYxLkRldmljZUxpbmtMaXN0SAASQAoNcm9vbV9jbGltYXRlcxgHIAEoCzInLmt1c2ludGEuaW90LmNsaW1hdGUudjEuUm9vbUNsaW1hdGVMaXN0SAASOwoMcm9vbV9oaXN0b3J5GAggASgLMiMua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tSGlzdG9yeUgAEkYKEnByaXZhY3lfZGlzY2xvc3VyZRgJIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcml2YWN5RGlzY2xvc3VyZUgAElQKGWFwYXJ0bWVudF9jbGltYXRlX3N1bW1hcnkYCiABKAsyLy5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkFwYXJ0bWVudENsaW1hdGVTdW1tYXJ5SABCCAoGcmVzdWx0IvsBCgxTdGFydFBhaXJpbmcSOgoMY29ubmVjdG9yX2lkGAEgASgLMiQua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuQ29ubmVjdG9ySWQSNAoGd2luZG93GAIgASgLMiQua3VzaW50YS5pb3QuY29tbW9uLnYxLlBhaXJpbmdXaW5kb3cSOgoQaW5pdGlhbF9zcGFjZV9pZBgDIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSPQoJb3duZXJzaGlwGAQgASgOMioua3VzaW50YS5pb3QuY29tbW9uLnYxLkRldmljZU93bmVyc2hpcFR5cGUijwEKDlBhaXJpbmdTdGFydGVkEhMKC2luX3JlcGx5X3RvGAEgASgJEi4KCmV4cGlyZXNfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjgKBWVycm9yGAMgASgLMikua3VzaW50YS5pb3QuY29tbW9uLnYxLlBhaXJpbmdFcnJvckRldGFpbCKXAQoPUGFpcmluZ0ZpbmlzaGVkEhMKC2luX3JlcGx5X3RvGAEgASgJEjUKCmRldmljZV9pZHMYAiADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBI4CgVlcnJvchgDIAEoCzIpLmt1c2ludGEuaW90LmNvbW1vbi52MS5QYWlyaW5nRXJyb3JEZXRhaWwiTQoLTGlua0NoYW5nZWQSLQoEbGluaxgBIAEoCzIfLmt1c2ludGEuaW90LmxpbmsudjEuRGV2aWNlTGluaxIPCgdyZW1vdmVkGAIgASgIIogDChNDb25uZWN0b3JEZXNjcmlwdG9yEjoKDGNvbm5lY3Rvcl9pZBgBIAEoCzIkLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkNvbm5lY3RvcklkEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIhChlzdXBwb3J0ZWRfZGV2aWNlX3R5cGVfaWRzGAMgAygNEhgKEHN1cHBvcnRzX3BhaXJpbmcYBCABKAgSHQoVc3VwcG9ydHNfcHJvdmlzaW9uaW5nGAUgASgIEhUKDWJyb2tlcnNfbGlua3MYBiABKAgSMgoEa2luZBgHIAEoDjIkLmt1c2ludGEuaW90LmNvbW1vbi52MS5Db25uZWN0b3JLaW5kEhMKC2Rlc2NyaXB0aW9uGAggASgJEjwKDmJhY2tlbmRfaGVhbHRoGAkgASgLMiQua3VzaW50YS5pb3QuY29tbW9uLnYxLkJhY2tlbmRIZWFsdGgSJQodc3VwcG9ydHNfYmFja2VuZF9yZWluaXRpYWxpemUYCiABKAgiVQoTQ29ubmVjdG9yc0Fubm91bmNlZBI+Cgpjb25uZWN0b3JzGAEgAygLMioua3VzaW50YS5pb3Qud2VicnRjLnYxLkNvbm5lY3RvckRlc2NyaXB0b3IiRwoSUm9vbUNsaW1hdGVDaGFuZ2VkEjEKBHJvb20YASABKAsyIy5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21DbGltYXRlIlYKEkNsaW1hdGVNb2RlQ2hhbmdlZBIxCgRtb2RlGAEgASgLMiMua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlTW9kZRINCgVlbmRlZBgCIAEoCCKICwoOR2F0ZXdheU1lc3NhZ2USEgoKbWVzc2FnZV9pZBgBIAEoCRIrCgdzZW50X2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJECg5zdGF0ZV9zbmFwc2hvdBgDIAEoCzIqLmt1c2ludGEuaW90LndlYnJ0Yy52MS5EZXZpY2VTdGF0ZVNuYXBzaG90SAASQAoPcHJvcGVydHlfcmVwb3J0GAQgASgLMiUua3VzaW50YS5pb3Qud2VicnRjLnYxLlByb3BlcnR5UmVwb3J0SAASSAoRcGVybWlzc2lvbl91cGRhdGUYBSABKAsyKy5rdXNpbnRhLmlvdC53ZWJydGMudjEuTGl2ZVBlcm1pc3Npb25VcGRhdGVIABI+Cg5jb21tYW5kX3Jlc3VsdBgGIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Db21tYW5kUmVzdWx0SAASKwoEcG9uZxgIIAEoCzIbLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qb25nSAASRgoSaGFuZHNoYWtlX3JlamVjdGVkGAkgASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLkhhbmRzaGFrZVJlamVjdGVkSAASNAoFZXJyb3IYCiABKAsyIy5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2F0ZXdheUVycm9ySAASQgoQc3Vic2NyaXB0aW9uX2FjaxgLIAEoCzImLmt1c2ludGEuaW90LndlYnJ0Yy52MS5TdWJzY3JpcHRpb25BY2tIABI6CgxkZXZpY2VfYWRkZWQYDCABKAsyIi5rdXNpbnRhLmlvdC53ZWJydGMudjEuRGV2aWNlQWRkZWRIABI+Cg5kZXZpY2VfcmVtb3ZlZBgNIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5EZXZpY2VSZW1vdmVkSAASRAoRbWFuYWdlbWVudF9yZXN1bHQYDiABKAsyJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuTWFuYWdlbWVudFJlc3VsdEgAEkAKDWRldmljZV9ldmVudHMYECABKAsyJy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGV2aWNlRXZlbnRCYXRjaEgAEkAKD3BhaXJpbmdfc3RhcnRlZBgRIAEoCzIlLmt1c2ludGEuaW90LndlYnJ0Yy52MS5QYWlyaW5nU3RhcnRlZEgAEkIKEHBhaXJpbmdfZmluaXNoZWQYEiABKAsyJi5rdXNpbnRhLmlvdC53ZWJydGMudjEuUGFpcmluZ0ZpbmlzaGVkSAASOgoMbGlua19jaGFuZ2VkGBMgASgLMiIua3VzaW50YS5pb3Qud2VicnRjLnYxLkxpbmtDaGFuZ2VkSAASSgoUY29ubmVjdG9yc19hbm5vdW5jZWQYFCABKAsyKi5rdXNpbnRhLmlvdC53ZWJydGMudjEuQ29ubmVjdG9yc0Fubm91bmNlZEgAEkkKFHJvb21fY2xpbWF0ZV9jaGFuZ2VkGBUgASgLMikua3VzaW50YS5pb3Qud2VicnRjLnYxLlJvb21DbGltYXRlQ2hhbmdlZEgAEkkKFGNsaW1hdGVfbW9kZV9jaGFuZ2VkGBYgASgLMikua3VzaW50YS5pb3Qud2VicnRjLnYxLkNsaW1hdGVNb2RlQ2hhbmdlZEgAEk0KFnNlcnZpY2Vfc3RhdHVzX2NoYW5nZWQYFyABKAsyKy5rdXNpbnRhLmlvdC53ZWJydGMudjEuU2VydmljZVN0YXR1c0NoYW5nZWRIAEIJCgdwYXlsb2FkSgQIDxAQSgQIBxAIUhZhdHRyaWJ1dGVfd3JpdGVfcmVzdWx0Ug5wcm9wZXJ0eV9ldmVudCKDBQoKQXBwTWVzc2FnZRISCgptZXNzYWdlX2lkGAEgASgJEisKB3NlbnRfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjgKCWhhbmRzaGFrZRgDIAEoCzIjLmt1c2ludGEuaW90LndlYnJ0Yy52MS5BcHBIYW5kc2hha2VIABI3Cgdjb21tYW5kGAQgASgLMiQua3VzaW50YS5pb3Qud2VicnRjLnYxLkRldmljZUNvbW1hbmRIABJCCgxyZWFkX3JlcXVlc3QYBSABKAsyKi5rdXNpbnRhLmlvdC53ZWJydGMudjEuUHJvcGVydHlSZWFkUmVxdWVzdEgAEisKBHBpbmcYBiABKAsyGy5rdXNpbnRhLmlvdC53ZWJydGMudjEuUGluZ0gAEjwKCXN1YnNjcmliZRgHIAEoCzInLmt1c2ludGEuaW90LndlYnJ0Yy52MS5TdWJzY3JpYmVEZXZpY2VzSAASQAoLdW5zdWJzY3JpYmUYCCABKAsyKS5rdXNpbnRhLmlvdC53ZWJydGMudjEuVW5zdWJzY3JpYmVEZXZpY2VzSAASPgoKbWFuYWdlbWVudBgJIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5NYW5hZ2VtZW50UmVxdWVzdEgAEkcKD2F0dHJpYnV0ZV93cml0ZRgKIAEoCzIsLmt1c2ludGEuaW90LndlYnJ0Yy52MS5BdHRyaWJ1dGVXcml0ZVJlcXVlc3RIABI8Cg1zdGFydF9wYWlyaW5nGAsgASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLlN0YXJ0UGFpcmluZ0gAQgkKB3BheWxvYWQqogIKEEdhdGV3YXlFcnJvckNvZGUSIgoeR0FURVdBWV9FUlJPUl9DT0RFX1VOU1BFQ0lGSUVEEAASIwofR0FURVdBWV9FUlJPUl9DT0RFX05PVF9FTlRJVExFRBABEiYKIkdBVEVXQVlfRVJST1JfQ09ERV9JTlZBTElEX1JFUVVFU1QQAhIiCh5HQVRFV0FZX0VSUk9SX0NPREVfVU5BVkFJTEFCTEUQAxIfChtHQVRFV0FZX0VSUk9SX0NPREVfSU5URVJOQUwQBBIsCihHQVRFV0FZX0VSUk9SX0NPREVfU0VTU0lPTl9MSU1JVF9SRUFDSEVEEAUSKgomR0FURVdBWV9FUlJPUl9DT0RFX0ZBSUxFRF9QUkVDT05ESVRJT04QBkICSAFiBnByb3RvMw", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_acl, file_kusinta_iot_climate_v1_climate, file_kusinta_iot_common_v1_pairing, file_kusinta_iot_common_v1_types, file_kusinta_iot_device_v1_device_event, file_kusinta_iot_identity_v1_identity, file_kusinta_iot_link_v1_link, file_kusinta_iot_space_v1_space, file_kusinta_iot_webrtc_v1_command, file_kusinta_iot_webrtc_v1_device_state, file_kusinta_iot_webrtc_v1_management, file_kusinta_iot_webrtc_v1_permission_push]);
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
27
|
* Describes the message kusinta.iot.webrtc.v1.Ping.
|
|
@@ -86,8 +86,7 @@ export declare const CreateSpaceSchema: GenMessage<CreateSpace>;
|
|
|
86
86
|
* filed on the apartment, where it was in it — and any link it would carry across a
|
|
87
87
|
* boundary is removed. Changing the type of a space that has members needs
|
|
88
88
|
* ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN, who see them, and is refused if it would
|
|
89
|
-
* leave a RESIDENT membership on a room
|
|
90
|
-
* the last quarter hour; that much this refusal discloses.
|
|
89
|
+
* leave a RESIDENT membership on a room.
|
|
91
90
|
*
|
|
92
91
|
* Every descriptive field carries explicit presence: absent means leave it alone, present
|
|
93
92
|
* means set it to this — including to the empty string, which is how a description is
|
|
@@ -478,8 +477,8 @@ export declare const ListSpacesSchema: GenMessage<ListSpaces>;
|
|
|
478
477
|
* device_ids on each Space are filtered to what the caller may see. An
|
|
479
478
|
* unfiltered tree would list every device on the gateway by id, which is the
|
|
480
479
|
* enumeration channel the snapshot filter exists to close. To a caller who sees a home as
|
|
481
|
-
* service, what is new in it is listed
|
|
482
|
-
*
|
|
480
|
+
* service, what is new in it is listed as it happens and what is gone at once, its members
|
|
481
|
+
* included where they are shown (see Space.members).
|
|
483
482
|
*
|
|
484
483
|
* @generated from message kusinta.iot.webrtc.v1.SpaceTree
|
|
485
484
|
*/
|
|
@@ -652,7 +651,7 @@ export declare const UpdateDeviceLinkSchema: GenMessage<UpdateDeviceLink>;
|
|
|
652
651
|
*
|
|
653
652
|
* A link with an end in a home reaches a caller who sees it as service with
|
|
654
653
|
* DeviceLink.details_withheld set, and what that withholds unset — a new link
|
|
655
|
-
*
|
|
654
|
+
* as it is made, a removed one at once — and not at all when either end is a
|
|
656
655
|
* device a resident owns.
|
|
657
656
|
*
|
|
658
657
|
* @generated from message kusinta.iot.webrtc.v1.ListDeviceLinks
|
|
@@ -814,11 +813,11 @@ export declare const ConfigureRoomClimateSchema: GenMessage<ConfigureRoomClimate
|
|
|
814
813
|
*
|
|
815
814
|
* In a home, only its residents may switch one on or off: whether a home stands empty is
|
|
816
815
|
* theirs to say. A caller who reaches it as service is refused as NOT_ENTITLED — except
|
|
817
|
-
* that, while the home
|
|
818
|
-
*
|
|
819
|
-
*
|
|
820
|
-
*
|
|
821
|
-
*
|
|
816
|
+
* that, while the home has no resident, ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN may
|
|
817
|
+
* switch off a mode that is on and whose setter is not a resident, so that no mode
|
|
818
|
+
* outlives everyone who could end it. Any other switch-off from them — no mode on, or one
|
|
819
|
+
* that is a resident's — is accepted and does nothing, so the answer tells them nothing of
|
|
820
|
+
* whether a mode was on or whether anyone has moved in.
|
|
822
821
|
*
|
|
823
822
|
* @generated from message kusinta.iot.webrtc.v1.SetClimateMode
|
|
824
823
|
*/
|
|
@@ -862,8 +861,8 @@ export declare const SetClimateModeSchema: GenMessage<SetClimateMode>;
|
|
|
862
861
|
* one the caller can reach; naming a space narrows it to that space and those below.
|
|
863
862
|
*
|
|
864
863
|
* A caller who reaches a room inside an apartment as service gets it with
|
|
865
|
-
* RoomClimate.state_withheld set — what is new
|
|
866
|
-
*
|
|
864
|
+
* RoomClimate.state_withheld set — what is new as it happens, what is gone at once — and
|
|
865
|
+
* gets no ClimateMode set on that apartment or its rooms.
|
|
867
866
|
*
|
|
868
867
|
* @generated from message kusinta.iot.webrtc.v1.ListRoomClimates
|
|
869
868
|
*/
|
|
@@ -945,8 +944,7 @@ export declare type PrivacyDisclosure = Message<"kusinta.iot.webrtc.v1.PrivacyDi
|
|
|
945
944
|
* role the gateway has not yet learnt, counts as ROLE_UNSPECIFIED. The gateway's
|
|
946
945
|
* administrator is always listed. So the list reads the same whether or not anyone lives
|
|
947
946
|
* in the home, and never understates who has reach or what they see. Devices a resident
|
|
948
|
-
* owns are not shown to service at all.
|
|
949
|
-
* answered as it stood at the last quarter hour.
|
|
947
|
+
* owns are not shown to service at all.
|
|
950
948
|
*
|
|
951
949
|
* @generated from field: repeated kusinta.iot.webrtc.v1.ServiceParty service_parties = 5;
|
|
952
950
|
*/
|
|
@@ -1064,6 +1062,94 @@ export declare type GetApartmentClimateSummary = Message<"kusinta.iot.webrtc.v1.
|
|
|
1064
1062
|
*/
|
|
1065
1063
|
export declare const GetApartmentClimateSummarySchema: GenMessage<GetApartmentClimateSummary>;
|
|
1066
1064
|
|
|
1065
|
+
/**
|
|
1066
|
+
* Asks the gateway to have a connector re-initialise its backend connection: reconnect to
|
|
1067
|
+
* its radio central or network server. Meant to be offered while a
|
|
1068
|
+
* reporting.v1.PROBLEM_KIND_CONNECTOR_ERROR is open for the connector — its
|
|
1069
|
+
* ConnectorDescriptor.backend_health is FAILING — and only for a connector listed in
|
|
1070
|
+
* ConnectorsAnnounced. A request for a connector that is not listed is refused, as
|
|
1071
|
+
* CONNECTOR_OFFLINE or UNKNOWN_CONNECTOR below. For a listed one it is accepted whatever its
|
|
1072
|
+
* health, since re-initialising a healthy backend is harmless.
|
|
1073
|
+
*
|
|
1074
|
+
* Authorized against the caller's role alone, as StartPairing is: a connector is not a
|
|
1075
|
+
* target the caller reaches the way a space is. ROLE_TECHNICIAN and ROLE_GATEWAY_ADMIN may
|
|
1076
|
+
* ask; anyone else is refused as NOT_ENTITLED, before the connector is looked up, so the
|
|
1077
|
+
* refusal says nothing of which connectors exist.
|
|
1078
|
+
*
|
|
1079
|
+
* The gateway forwards it as connector.v1.ReinitializeBackend and answers once the
|
|
1080
|
+
* connector has: with ManagementAck when the attempt was made. That says the attempt
|
|
1081
|
+
* finished, not that it worked. Whether it worked is the connector's backend health, and
|
|
1082
|
+
* when that changed the gateway pushes it in ConnectorsAnnounced before the ack. One
|
|
1083
|
+
* request at a time per connector.
|
|
1084
|
+
*
|
|
1085
|
+
* So a failure found only by attempting — credentials the backend rejects, a backend that
|
|
1086
|
+
* does not answer — is not a refusal. It arrives as a ManagementAck, with the backend
|
|
1087
|
+
* health it left (FAILING, e.g. with AUTH_FAILED, UNREACHABLE or BACKEND_ERROR) already
|
|
1088
|
+
* pushed: after the ack, the app reads ConnectorDescriptor.backend_health for the outcome,
|
|
1089
|
+
* and a FAILING health there means the reconnect did not help. The app handles any reason
|
|
1090
|
+
* there, one its schema does not know included. No push precedes the ack when the attempt
|
|
1091
|
+
* left health as it was; the descriptor the app holds is then still the outcome.
|
|
1092
|
+
*
|
|
1093
|
+
* A refusal is a GatewayError whose metadata "reason" says which, as CommandError.metadata
|
|
1094
|
+
* describes, and whose "detail" is a sentence the app may show. The app branches on
|
|
1095
|
+
* "reason" for this operation; the code is only the fallback for a reason it does not know,
|
|
1096
|
+
* since GatewayErrorCode is too coarse to say what to do here. The role refusal above is
|
|
1097
|
+
* the code NOT_ENTITLED alone, with no "reason"; the reasons are for a caller who may ask:
|
|
1098
|
+
* "UNKNOWN_CONNECTOR" UNAVAILABLE. The gateway does not track a connector by that id:
|
|
1099
|
+
* it never had one, or has stopped tracking it. Not a client bug:
|
|
1100
|
+
* the list the app holds may be stale.
|
|
1101
|
+
* "CONNECTOR_OFFLINE" UNAVAILABLE. A connector the gateway tracks, whose stream to the
|
|
1102
|
+
* gateway is down now, before or while the request was
|
|
1103
|
+
* outstanding; that is CONNECTOR_OFFLINE, and a reconnect of its
|
|
1104
|
+
* backend cannot help it.
|
|
1105
|
+
* "NOT_SUPPORTED" FAILED_PRECONDITION. The connector does not declare
|
|
1106
|
+
* ConnectorDescriptor.supports_backend_reinitialize, or declared it
|
|
1107
|
+
* and answered that it has nothing to re-initialise. Not a client
|
|
1108
|
+
* bug, and not worth retrying as is.
|
|
1109
|
+
* "ALREADY_IN_PROGRESS" UNAVAILABLE. A reconnect of this connector is outstanding, from
|
|
1110
|
+
* this caller or another. It ends within 60 seconds of being
|
|
1111
|
+
* asked, answered or timed out; retry after that. Only the caller
|
|
1112
|
+
* who asked is answered, but a change of health it causes reaches
|
|
1113
|
+
* every session in ConnectorsAnnounced.
|
|
1114
|
+
* "TIMED_OUT" UNAVAILABLE. The connector did not answer within the gateway's
|
|
1115
|
+
* deadline. The attempt may still finish, and its outcome still
|
|
1116
|
+
* arrives as backend health.
|
|
1117
|
+
* "REINITIALIZE_FAILED" The connector could not attempt it at all
|
|
1118
|
+
* (connector.v1.REINITIALIZE_OUTCOME_FAILED, or an outcome the
|
|
1119
|
+
* gateway's schema does not know, read as FAILED). The code
|
|
1120
|
+
* depends on the reason: FAILED_PRECONDITION when it is
|
|
1121
|
+
* MISCONFIGURED, which needs a person to correct the connector's
|
|
1122
|
+
* configuration before asking again can help; UNAVAILABLE for
|
|
1123
|
+
* any other — INTERNAL, UNSPECIFIED, a value the gateway does not
|
|
1124
|
+
* know — since a retry may work. Rejected credentials are never
|
|
1125
|
+
* this: they are found by attempting, and come back as an ack
|
|
1126
|
+
* (see above). metadata "backend_failure" is always set: the
|
|
1127
|
+
* common.v1.BackendFailureReason by its enum name, e.g.
|
|
1128
|
+
* "BACKEND_FAILURE_REASON_MISCONFIGURED". A reason that is
|
|
1129
|
+
* UNSPECIFIED, or a value the gateway's schema does not know, is
|
|
1130
|
+
* sent as "BACKEND_FAILURE_REASON_BACKEND_ERROR", as
|
|
1131
|
+
* BackendFailureReason has it; an app reading a name its own
|
|
1132
|
+
* schema does not know treats it as BACKEND_ERROR too.
|
|
1133
|
+
* The connector's own detail is never in a refusal; GatewayError.message is the gateway's.
|
|
1134
|
+
*
|
|
1135
|
+
* @generated from message kusinta.iot.webrtc.v1.ReconnectConnector
|
|
1136
|
+
*/
|
|
1137
|
+
export declare type ReconnectConnector = Message<"kusinta.iot.webrtc.v1.ReconnectConnector"> & {
|
|
1138
|
+
/**
|
|
1139
|
+
* As ConnectorDescriptor.connector_id, and the id a CONNECTOR_ERROR problem's subject
|
|
1140
|
+
* names (reporting.v1.ProblemSubject.connector_id).
|
|
1141
|
+
*
|
|
1142
|
+
* @generated from field: kusinta.iot.identity.v1.ConnectorId connector_id = 1;
|
|
1143
|
+
*/
|
|
1144
|
+
connectorId?: ConnectorId | undefined;
|
|
1145
|
+
};
|
|
1146
|
+
|
|
1147
|
+
/**
|
|
1148
|
+
* Describes the message kusinta.iot.webrtc.v1.ReconnectConnector.
|
|
1149
|
+
* Use `create(ReconnectConnectorSchema)` to create a new message.
|
|
1150
|
+
*/
|
|
1151
|
+
export declare const ReconnectConnectorSchema: GenMessage<ReconnectConnector>;
|
|
1152
|
+
|
|
1067
1153
|
/**
|
|
1068
1154
|
* @generated from message kusinta.iot.webrtc.v1.ManagementRequest
|
|
1069
1155
|
*/
|
|
@@ -1203,6 +1289,12 @@ export declare type ManagementRequest = Message<"kusinta.iot.webrtc.v1.Managemen
|
|
|
1203
1289
|
*/
|
|
1204
1290
|
value: GetApartmentClimateSummary;
|
|
1205
1291
|
case: "getApartmentClimateSummary";
|
|
1292
|
+
} | {
|
|
1293
|
+
/**
|
|
1294
|
+
* @generated from field: kusinta.iot.webrtc.v1.ReconnectConnector reconnect_connector = 23;
|
|
1295
|
+
*/
|
|
1296
|
+
value: ReconnectConnector;
|
|
1297
|
+
case: "reconnectConnector";
|
|
1206
1298
|
} | { case: undefined; value?: undefined };
|
|
1207
1299
|
};
|
|
1208
1300
|
|
|
@@ -17,7 +17,7 @@ import { file_kusinta_iot_vendor_lorawan_v1_lorawan } from "../../vendor/lorawan
|
|
|
17
17
|
* Describes the file kusinta/iot/webrtc/v1/management.proto.
|
|
18
18
|
*/
|
|
19
19
|
export const file_kusinta_iot_webrtc_v1_management = /*@__PURE__*/
|
|
20
|
-
fileDesc("
|
|
20
|
+
fileDesc("CiZrdXNpbnRhL2lvdC93ZWJydGMvdjEvbWFuYWdlbWVudC5wcm90bxIVa3VzaW50YS5pb3Qud2VicnRjLnYxItYBCgtDcmVhdGVTcGFjZRI0CgpzcGFjZV90eXBlGAEgASgOMiAua3VzaW50YS5pb3QuY29tbW9uLnYxLlNwYWNlVHlwZRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEg0KBWZsb29yGAQgASgFEjkKD3BhcmVudF9zcGFjZV9pZBgFIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSFgoJdGltZV96b25lGAYgASgJSACIAQFCDAoKX3RpbWVfem9uZSL1AgoLVXBkYXRlU3BhY2USMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEjkKCnNwYWNlX3R5cGUYAiABKA4yIC5rdXNpbnRhLmlvdC5jb21tb24udjEuU3BhY2VUeXBlSAGIAQESEQoEbmFtZRgDIAEoCUgCiAEBEhgKC2Rlc2NyaXB0aW9uGAQgASgJSAOIAQESEgoFZmxvb3IYBSABKAVIBIgBARI7Cg9wYXJlbnRfc3BhY2VfaWQYBiABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkSAASEAoGZGV0YWNoGAcgASgISAASFgoJdGltZV96b25lGAggASgJSAWIAQFCDwoNcGFyZW50X2NoYW5nZUINCgtfc3BhY2VfdHlwZUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CCAoGX2Zsb29yQgwKCl90aW1lX3pvbmUiUgoLRGVsZXRlU3BhY2USMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEg8KB2Nhc2NhZGUYAiABKAgivAEKEUFzc2lnblVzZXJUb1NwYWNlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIwCgd1c2VyX2lkGAIgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEjsKCHJlbGF0aW9uGAQgASgOMikua3VzaW50YS5pb3QuYWNjZXNzLnYxLk1lbWJlcnNoaXBSZWxhdGlvbkoECAMQBCJ7ChNSZW1vdmVVc2VyRnJvbVNwYWNlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIwCgd1c2VyX2lkGAIgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkIn4KElBsYWNlRGV2aWNlSW5TcGFjZRI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIyCghzcGFjZV9pZBgCIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQigQEKFVJlbW92ZURldmljZUZyb21TcGFjZRI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIyCghzcGFjZV9pZBgCIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQi2AEKC0NsYWltRGV2aWNlEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEj0KCW93bmVyc2hpcBgCIAEoDjIqLmt1c2ludGEuaW90LmNvbW1vbi52MS5EZXZpY2VPd25lcnNoaXBUeXBlEjoKEGluaXRpYWxfc3BhY2VfaWQYAyABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEhgKEHBvc3Nlc3Npb25fcHJvb2YYBCABKAkiRQoNUmVsZWFzZURldmljZRI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCKjAQoPUHJvdmlzaW9uRGV2aWNlEjoKDGNvbm5lY3Rvcl9pZBgBIAEoCzIkLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkNvbm5lY3RvcklkEkUKB2xvcmF3YW4YAiABKAsyMi5rdXNpbnRhLmlvdC52ZW5kb3IubG9yYXdhbi52MS5Mb3Jhd2FuUHJvdmlzaW9uaW5nSABCDQoLY3JlZGVudGlhbHMiRQoKTGlzdFNwYWNlcxI3Cg1yb290X3NwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZCI4CglTcGFjZVRyZWUSKwoGc3BhY2VzGAEgAygLMhsua3VzaW50YS5pb3Quc3BhY2UudjEuU3BhY2UiDwoNTWFuYWdlbWVudEFjayKRAgoQQ3JlYXRlRGV2aWNlTGluaxIxCgZzZW5kZXIYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIzCghyZWNlaXZlchgCIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjMKCGZ1bmN0aW9uGAMgASgOMiEua3VzaW50YS5pb3QubGluay52MS5MaW5rRnVuY3Rpb24SKwoEbW9kZRgEIAEoDjIdLmt1c2ludGEuaW90LmxpbmsudjEuTGlua01vZGUSMwoIc2V0dGluZ3MYBSABKAsyIS5rdXNpbnRhLmlvdC5saW5rLnYxLkxpbmtTZXR0aW5ncyIjChBSZW1vdmVEZXZpY2VMaW5rEg8KB2xpbmtfaWQYASABKAkiWAoQVXBkYXRlRGV2aWNlTGluaxIPCgdsaW5rX2lkGAEgASgJEjMKCHNldHRpbmdzGAIgASgLMiEua3VzaW50YS5pb3QubGluay52MS5MaW5rU2V0dGluZ3MiRwoPTGlzdERldmljZUxpbmtzEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkInwKDVNldFJvb21UYXJnZXQSMQoHcm9vbV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSIAoTdGFyZ2V0X2NlbnRpZGVncmVlcxgCIAEoEUgAiAEBQhYKFF90YXJnZXRfY2VudGlkZWdyZWVzIkQKC1Jvb21TZW5zb3JzEjUKCnNlbnNvcl9pZHMYASADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCJ0CgpSb29tTGltaXRzEh0KEG1pbl9jZW50aWRlZ3JlZXMYASABKBFIAIgBARIdChBtYXhfY2VudGlkZWdyZWVzGAIgASgRSAGIAQFCEwoRX21pbl9jZW50aWRlZ3JlZXNCEwoRX21heF9jZW50aWRlZ3JlZXMi7QEKFENvbmZpZ3VyZVJvb21DbGltYXRlEjEKB3Jvb21faWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEjEKBmxpbWl0cxgCIAEoCzIhLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Sb29tTGltaXRzEjMKB3NlbnNvcnMYAyABKAsyIi5rdXNpbnRhLmlvdC53ZWJydGMudjEuUm9vbVNlbnNvcnMSIQoUbG9ja19kZXZpY2VfY29udHJvbHMYBCABKAhIAIgBAUIXChVfbG9ja19kZXZpY2VfY29udHJvbHMikwIKDlNldENsaW1hdGVNb2RlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI1CgRraW5kGAIgASgOMicua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlTW9kZUtpbmQSIQoUc2V0YmFja19jZW50aWRlZ3JlZXMYAyABKBFIAIgBARItCglzdGFydHNfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB2VuZHNfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhcKFV9zZXRiYWNrX2NlbnRpZGVncmVlcyJLChBMaXN0Um9vbUNsaW1hdGVzEjcKDXJvb3Rfc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkIp8BCg5HZXRSb29tSGlzdG9yeRIxCgdyb29tX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBItCglmcm9tX3RpbWUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB3RvX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIt8BChFQcml2YWN5RGlzY2xvc3VyZRIyCghzcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSPAoPc2VydmljZV9wYXJ0aWVzGAUgAygLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLlNlcnZpY2VQYXJ0eRJMChZjbGltYXRlX3N1bW1hcnlfcGVyaW9kGAQgASgOMiwua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlU3VtbWFyeVBlcmlvZEoECAIQA0oECAMQBCJwCgxTZXJ2aWNlUGFydHkSKQoEcm9sZRgBIAEoDjIbLmt1c2ludGEuaW90LmFjY2Vzcy52MS5Sb2xlEjUKB3NpZ25hbHMYAiADKA4yJC5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuU2VydmljZVNpZ25hbCJKChRHZXRQcml2YWN5RGlzY2xvc3VyZRIyCghzcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQi7gEKGkdldEFwYXJ0bWVudENsaW1hdGVTdW1tYXJ5EjYKDGFwYXJ0bWVudF9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSPAoGcGVyaW9kGAIgASgOMiwua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlU3VtbWFyeVBlcmlvZBItCglmcm9tX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB3RvX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIlAKElJlY29ubmVjdENvbm5lY3RvchI6Cgxjb25uZWN0b3JfaWQYASABKAsyJC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Db25uZWN0b3JJZCLuDAoRTWFuYWdlbWVudFJlcXVlc3QSOgoMY3JlYXRlX3NwYWNlGAEgASgLMiIua3VzaW50YS5pb3Qud2VicnRjLnYxLkNyZWF0ZVNwYWNlSAASOgoMdXBkYXRlX3NwYWNlGAIgASgLMiIua3VzaW50YS5pb3Qud2VicnRjLnYxLlVwZGF0ZVNwYWNlSAASOgoMZGVsZXRlX3NwYWNlGAMgASgLMiIua3VzaW50YS5pb3Qud2VicnRjLnYxLkRlbGV0ZVNwYWNlSAASSAoUYXNzaWduX3VzZXJfdG9fc3BhY2UYBCABKAsyKC5rdXNpbnRhLmlvdC53ZWJydGMudjEuQXNzaWduVXNlclRvU3BhY2VIABJMChZyZW1vdmVfdXNlcl9mcm9tX3NwYWNlGAUgASgLMioua3VzaW50YS5pb3Qud2VicnRjLnYxLlJlbW92ZVVzZXJGcm9tU3BhY2VIABJKChVwbGFjZV9kZXZpY2VfaW5fc3BhY2UYBiABKAsyKS5rdXNpbnRhLmlvdC53ZWJydGMudjEuUGxhY2VEZXZpY2VJblNwYWNlSAASUAoYcmVtb3ZlX2RldmljZV9mcm9tX3NwYWNlGAcgASgLMiwua3VzaW50YS5pb3Qud2VicnRjLnYxLlJlbW92ZURldmljZUZyb21TcGFjZUgAEjoKDGNsYWltX2RldmljZRgIIAEoCzIiLmt1c2ludGEuaW90LndlYnJ0Yy52MS5DbGFpbURldmljZUgAEj4KDnJlbGVhc2VfZGV2aWNlGAkgASgLMiQua3VzaW50YS5pb3Qud2VicnRjLnYxLlJlbGVhc2VEZXZpY2VIABI4CgtsaXN0X3NwYWNlcxgKIAEoCzIhLmt1c2ludGEuaW90LndlYnJ0Yy52MS5MaXN0U3BhY2VzSAASRQoSY3JlYXRlX2RldmljZV9saW5rGAsgASgLMicua3VzaW50YS5pb3Qud2VicnRjLnYxLkNyZWF0ZURldmljZUxpbmtIABJFChJyZW1vdmVfZGV2aWNlX2xpbmsYDCABKAsyJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuUmVtb3ZlRGV2aWNlTGlua0gAEkMKEWxpc3RfZGV2aWNlX2xpbmtzGA0gASgLMiYua3VzaW50YS5pb3Qud2VicnRjLnYxLkxpc3REZXZpY2VMaW5rc0gAEkUKEnVwZGF0ZV9kZXZpY2VfbGluaxgOIAEoCzInLmt1c2ludGEuaW90LndlYnJ0Yy52MS5VcGRhdGVEZXZpY2VMaW5rSAASQgoQcHJvdmlzaW9uX2RldmljZRgPIAEoCzImLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcm92aXNpb25EZXZpY2VIABI/Cg9zZXRfcm9vbV90YXJnZXQYECABKAsyJC5rdXNpbnRhLmlvdC53ZWJydGMudjEuU2V0Um9vbVRhcmdldEgAEk0KFmNvbmZpZ3VyZV9yb29tX2NsaW1hdGUYESABKAsyKy5rdXNpbnRhLmlvdC53ZWJydGMudjEuQ29uZmlndXJlUm9vbUNsaW1hdGVIABJBChBzZXRfY2xpbWF0ZV9tb2RlGBIgASgLMiUua3VzaW50YS5pb3Qud2VicnRjLnYxLlNldENsaW1hdGVNb2RlSAASRQoSbGlzdF9yb29tX2NsaW1hdGVzGBMgASgLMicua3VzaW50YS5pb3Qud2VicnRjLnYxLkxpc3RSb29tQ2xpbWF0ZXNIABJBChBnZXRfcm9vbV9oaXN0b3J5GBQgASgLMiUua3VzaW50YS5pb3Qud2VicnRjLnYxLkdldFJvb21IaXN0b3J5SAASTQoWZ2V0X3ByaXZhY3lfZGlzY2xvc3VyZRgVIAEoCzIrLmt1c2ludGEuaW90LndlYnJ0Yy52MS5HZXRQcml2YWN5RGlzY2xvc3VyZUgAEloKHWdldF9hcGFydG1lbnRfY2xpbWF0ZV9zdW1tYXJ5GBYgASgLMjEua3VzaW50YS5pb3Qud2VicnRjLnYxLkdldEFwYXJ0bWVudENsaW1hdGVTdW1tYXJ5SAASSAoTcmVjb25uZWN0X2Nvbm5lY3RvchgXIAEoCzIpLmt1c2ludGEuaW90LndlYnJ0Yy52MS5SZWNvbm5lY3RDb25uZWN0b3JIAEIJCgdyZXF1ZXN0QgJIAWIGcHJvdG8z", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_acl, file_kusinta_iot_access_v1_roles, file_kusinta_iot_climate_v1_climate, file_kusinta_iot_common_v1_types, file_kusinta_iot_identity_v1_identity, file_kusinta_iot_link_v1_link, file_kusinta_iot_space_v1_space, file_kusinta_iot_vendor_lorawan_v1_lorawan]);
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Describes the message kusinta.iot.webrtc.v1.CreateSpace.
|
|
@@ -215,10 +215,17 @@ export const GetPrivacyDisclosureSchema = /*@__PURE__*/
|
|
|
215
215
|
export const GetApartmentClimateSummarySchema = /*@__PURE__*/
|
|
216
216
|
messageDesc(file_kusinta_iot_webrtc_v1_management, 27);
|
|
217
217
|
|
|
218
|
+
/**
|
|
219
|
+
* Describes the message kusinta.iot.webrtc.v1.ReconnectConnector.
|
|
220
|
+
* Use `create(ReconnectConnectorSchema)` to create a new message.
|
|
221
|
+
*/
|
|
222
|
+
export const ReconnectConnectorSchema = /*@__PURE__*/
|
|
223
|
+
messageDesc(file_kusinta_iot_webrtc_v1_management, 28);
|
|
224
|
+
|
|
218
225
|
/**
|
|
219
226
|
* Describes the message kusinta.iot.webrtc.v1.ManagementRequest.
|
|
220
227
|
* Use `create(ManagementRequestSchema)` to create a new message.
|
|
221
228
|
*/
|
|
222
229
|
export const ManagementRequestSchema = /*@__PURE__*/
|
|
223
|
-
messageDesc(file_kusinta_iot_webrtc_v1_management,
|
|
230
|
+
messageDesc(file_kusinta_iot_webrtc_v1_management, 29);
|
|
224
231
|
|
|
@@ -13,24 +13,21 @@ import type { DeviceId, SpaceId } from "../../identity/v1/identity_pb.js";
|
|
|
13
13
|
export declare const file_kusinta_iot_webrtc_v1_permission_push: GenFile;
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
* Pushed to the app whenever the user's effective permissions change
|
|
17
|
-
* away what the user may see or do takes effect and is sent at once
|
|
18
|
-
* of a home as service — a device filed into it, a home newly reached —
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* drops the ServiceStatus it held of them until their next one. A quarter-hour
|
|
29
|
-
* push that brings a home newly seen as service lists it in reset_spaces, so the app reads
|
|
30
|
-
* its rooms and links then.
|
|
16
|
+
* Pushed to the app whenever the user's effective permissions change, as they change. A
|
|
17
|
+
* change that takes away what the user may see or do takes effect and is sent at once; what
|
|
18
|
+
* a user newly sees of a home as service — a device filed into it, a home newly reached —
|
|
19
|
+
* is sent as it happens too, with new_permissions.valid_at the moment it took effect. A
|
|
20
|
+
* resident who becomes service loses the resident view at once — the home's devices are
|
|
21
|
+
* listed in removed_devices, so the app drops what it holds of them — and gains the service
|
|
22
|
+
* view at once, in a push that follows, where they come back in added_devices as service
|
|
23
|
+
* and their stretch of seeing the home as service begins. A member who becomes a resident
|
|
24
|
+
* gains the resident view at once: the home's devices come again in added_devices, each
|
|
25
|
+
* with a DeviceAdded carrying its full Device, and the app drops the ServiceStatus it held
|
|
26
|
+
* of them until their next one. A push that brings a home newly seen as service lists it in
|
|
27
|
+
* reset_spaces, so the app reads its rooms and links then.
|
|
31
28
|
* change_reason values: "DEVICE_ASSIGNED", "DEVICE_UNASSIGNED", "RESIDENT_CHANGED",
|
|
32
29
|
* "CONSTRAINT_UPDATED"; empty whenever the change concerns a home the user sees, or saw, as
|
|
33
|
-
* service
|
|
30
|
+
* service, so that no push says why a home changed.
|
|
34
31
|
*
|
|
35
32
|
* @generated from message kusinta.iot.webrtc.v1.LivePermissionUpdate
|
|
36
33
|
*/
|
|
@@ -68,8 +65,8 @@ export declare type LivePermissionUpdate = Message<"kusinta.iot.webrtc.v1.LivePe
|
|
|
68
65
|
* space, or newly see it as service. The app drops everything it holds of each and of the
|
|
69
66
|
* spaces beneath it, and reads them again (ListSpaces, ListRoomClimates, ListDeviceLinks)
|
|
70
67
|
* if it may.
|
|
71
|
-
*
|
|
72
|
-
*
|
|
68
|
+
* Each is sent as the change happens: a loss, a wider view as a resident and a home newly
|
|
69
|
+
* seen as service alike.
|
|
73
70
|
*
|
|
74
71
|
* @generated from field: repeated kusinta.iot.identity.v1.SpaceId reset_spaces = 5;
|
|
75
72
|
*/
|