@kusinta/iot-schema 0.2.0-beta.25 → 0.2.0-beta.27

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.
@@ -10,6 +10,8 @@ import type { Space } from "../../space/v1/space_pb.js";
10
10
  import type { ManagementAck, ManagementRequest, PrivacyDisclosure, SpaceTree } from "./management_pb.js";
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
+ import type { IssuedInvite, SpaceInvites } from "./invite_pb.js";
14
+ import type { GatewayMembers } from "./members_pb.js";
13
15
  import type { PairingErrorDetail, PairingWindow } from "../../common/v1/pairing_pb.js";
14
16
  import type { BackendHealth, ConnectorKind, DeviceOwnershipType } from "../../common/v1/types_pb.js";
15
17
  import type { Timestamp } from "@bufbuild/protobuf/wkt";
@@ -360,6 +362,30 @@ export declare type ManagementResult = Message<"kusinta.iot.webrtc.v1.Management
360
362
  */
361
363
  value: ApartmentClimateSummary;
362
364
  case: "apartmentClimateSummary";
365
+ } | {
366
+ /**
367
+ * create_invite, resend_invite
368
+ *
369
+ * @generated from field: kusinta.iot.webrtc.v1.IssuedInvite issued_invite = 11;
370
+ */
371
+ value: IssuedInvite;
372
+ case: "issuedInvite";
373
+ } | {
374
+ /**
375
+ * list_space_invites
376
+ *
377
+ * @generated from field: kusinta.iot.webrtc.v1.SpaceInvites space_invites = 12;
378
+ */
379
+ value: SpaceInvites;
380
+ case: "spaceInvites";
381
+ } | {
382
+ /**
383
+ * list_gateway_members
384
+ *
385
+ * @generated from field: kusinta.iot.webrtc.v1.GatewayMembers gateway_members = 13;
386
+ */
387
+ value: GatewayMembers;
388
+ case: "gatewayMembers";
363
389
  } | { case: undefined; value?: undefined };
364
390
  };
365
391
 
@@ -881,6 +907,14 @@ export declare type GatewayMessage = Message<"kusinta.iot.webrtc.v1.GatewayMessa
881
907
  */
882
908
  value: ServiceStatusChanged;
883
909
  case: "serviceStatusChanged";
910
+ } | {
911
+ /**
912
+ * A space's pending invites and join requests changed; see SpaceInvites.
913
+ *
914
+ * @generated from field: kusinta.iot.webrtc.v1.SpaceInvites space_invites = 24;
915
+ */
916
+ value: SpaceInvites;
917
+ case: "spaceInvites";
884
918
  } | { case: undefined; value?: undefined };
885
919
  };
886
920
 
@@ -14,14 +14,16 @@ import { file_kusinta_iot_link_v1_link } from "../../link/v1/link_pb.js";
14
14
  import { file_kusinta_iot_space_v1_space } from "../../space/v1/space_pb.js";
15
15
  import { file_kusinta_iot_webrtc_v1_command } from "./command_pb.js";
16
16
  import { file_kusinta_iot_webrtc_v1_device_state } from "./device_state_pb.js";
17
+ import { file_kusinta_iot_webrtc_v1_invite } from "./invite_pb.js";
17
18
  import { file_kusinta_iot_webrtc_v1_management } from "./management_pb.js";
19
+ import { file_kusinta_iot_webrtc_v1_members } from "./members_pb.js";
18
20
  import { file_kusinta_iot_webrtc_v1_permission_push } from "./permission_push_pb.js";
19
21
 
20
22
  /**
21
23
  * Describes the file kusinta/iot/webrtc/v1/envelope.proto.
22
24
  */
23
25
  export const file_kusinta_iot_webrtc_v1_envelope = /*@__PURE__*/
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]);
26
+ fileDesc("CiRrdXNpbnRhL2lvdC93ZWJydGMvdjEvZW52ZWxvcGUucHJvdG8SFWt1c2ludGEuaW90LndlYnJ0Yy52MSIGCgRQaW5nIgYKBFBvbmciIwoRSGFuZHNoYWtlUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJIlwKDEFwcEhhbmRzaGFrZRILCgNqd3QYASABKAkSPwoUc3Vic2NyaWJlX2RldmljZV9pZHMYAiADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCJJChBTdWJzY3JpYmVEZXZpY2VzEjUKCmRldmljZV9pZHMYASADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCJLChJVbnN1YnNjcmliZURldmljZXMSNQoKZGV2aWNlX2lkcxgBIAMoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkIpMBChNSZWZ1c2VkU3Vic2NyaXB0aW9uEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjUKBGNvZGUYAiABKA4yJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2F0ZXdheUVycm9yQ29kZRIPCgdtZXNzYWdlGAMgASgJIpoBCg9TdWJzY3JpcHRpb25BY2sSEwoLaW5fcmVwbHlfdG8YASABKAkSNQoKc3Vic2NyaWJlZBgCIAMoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjsKB3JlZnVzZWQYAyADKAsyKi5rdXNpbnRhLmlvdC53ZWJydGMudjEuUmVmdXNlZFN1YnNjcmlwdGlvbiLRAQoTUHJvcGVydHlSZWFkUmVxdWVzdBI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIzCgZ0YXJnZXQYByABKAsyIy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuQXR0cmlidXRlUmVmSgQIAhAHUg5hdHRyaWJ1dGVfbmFtZVIOY2x1c3Rlcl9pZF9oZXhSCmNsdXN0ZXJfaWRSC2VuZHBvaW50X2lkUhB2ZW5kb3JfZXh0ZW5zaW9uIswBCgxHYXRld2F5RXJyb3ISNQoEY29kZRgBIAEoDjInLmt1c2ludGEuaW90LndlYnJ0Yy52MS5HYXRld2F5RXJyb3JDb2RlEg8KB21lc3NhZ2UYAiABKAkSQwoIbWV0YWRhdGEYAyADKAsyMS5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2F0ZXdheUVycm9yLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIpMGChBNYW5hZ2VtZW50UmVzdWx0EhMKC2luX3JlcGx5X3RvGAEgASgJEjQKBWVycm9yGAIgASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLkdhdGV3YXlFcnJvckgAEiwKBXNwYWNlGAMgASgLMhsua3VzaW50YS5pb3Quc3BhY2UudjEuU3BhY2VIABI2CgpzcGFjZV90cmVlGAQgASgLMiAua3VzaW50YS5pb3Qud2VicnRjLnYxLlNwYWNlVHJlZUgAEjMKA2FjaxgFIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5NYW5hZ2VtZW50QWNrSAASNAoFbGlua3MYBiABKAsyIy5rdXNpbnRhLmlvdC5saW5rLnYxLkRldmljZUxpbmtMaXN0SAASQAoNcm9vbV9jbGltYXRlcxgHIAEoCzInLmt1c2ludGEuaW90LmNsaW1hdGUudjEuUm9vbUNsaW1hdGVMaXN0SAASOwoMcm9vbV9oaXN0b3J5GAggASgLMiMua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tSGlzdG9yeUgAEkYKEnByaXZhY3lfZGlzY2xvc3VyZRgJIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcml2YWN5RGlzY2xvc3VyZUgAElQKGWFwYXJ0bWVudF9jbGltYXRlX3N1bW1hcnkYCiABKAsyLy5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkFwYXJ0bWVudENsaW1hdGVTdW1tYXJ5SAASPAoNaXNzdWVkX2ludml0ZRgLIAEoCzIjLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Jc3N1ZWRJbnZpdGVIABI8Cg1zcGFjZV9pbnZpdGVzGAwgASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLlNwYWNlSW52aXRlc0gAEkAKD2dhdGV3YXlfbWVtYmVycxgNIAEoCzIlLmt1c2ludGEuaW90LndlYnJ0Yy52MS5HYXRld2F5TWVtYmVyc0gAQggKBnJlc3VsdCL7AQoMU3RhcnRQYWlyaW5nEjoKDGNvbm5lY3Rvcl9pZBgBIAEoCzIkLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkNvbm5lY3RvcklkEjQKBndpbmRvdxgCIAEoCzIkLmt1c2ludGEuaW90LmNvbW1vbi52MS5QYWlyaW5nV2luZG93EjoKEGluaXRpYWxfc3BhY2VfaWQYAyABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEj0KCW93bmVyc2hpcBgEIAEoDjIqLmt1c2ludGEuaW90LmNvbW1vbi52MS5EZXZpY2VPd25lcnNoaXBUeXBlIo8BCg5QYWlyaW5nU3RhcnRlZBITCgtpbl9yZXBseV90bxgBIAEoCRIuCgpleHBpcmVzX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI4CgVlcnJvchgDIAEoCzIpLmt1c2ludGEuaW90LmNvbW1vbi52MS5QYWlyaW5nRXJyb3JEZXRhaWwilwEKD1BhaXJpbmdGaW5pc2hlZBITCgtpbl9yZXBseV90bxgBIAEoCRI1CgpkZXZpY2VfaWRzGAIgAygLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSOAoFZXJyb3IYAyABKAsyKS5rdXNpbnRhLmlvdC5jb21tb24udjEuUGFpcmluZ0Vycm9yRGV0YWlsIk0KC0xpbmtDaGFuZ2VkEi0KBGxpbmsYASABKAsyHy5rdXNpbnRhLmlvdC5saW5rLnYxLkRldmljZUxpbmsSDwoHcmVtb3ZlZBgCIAEoCCKIAwoTQ29ubmVjdG9yRGVzY3JpcHRvchI6Cgxjb25uZWN0b3JfaWQYASABKAsyJC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Db25uZWN0b3JJZBIUCgxkaXNwbGF5X25hbWUYAiABKAkSIQoZc3VwcG9ydGVkX2RldmljZV90eXBlX2lkcxgDIAMoDRIYChBzdXBwb3J0c19wYWlyaW5nGAQgASgIEh0KFXN1cHBvcnRzX3Byb3Zpc2lvbmluZxgFIAEoCBIVCg1icm9rZXJzX2xpbmtzGAYgASgIEjIKBGtpbmQYByABKA4yJC5rdXNpbnRhLmlvdC5jb21tb24udjEuQ29ubmVjdG9yS2luZBITCgtkZXNjcmlwdGlvbhgIIAEoCRI8Cg5iYWNrZW5kX2hlYWx0aBgJIAEoCzIkLmt1c2ludGEuaW90LmNvbW1vbi52MS5CYWNrZW5kSGVhbHRoEiUKHXN1cHBvcnRzX2JhY2tlbmRfcmVpbml0aWFsaXplGAogASgIIlUKE0Nvbm5lY3RvcnNBbm5vdW5jZWQSPgoKY29ubmVjdG9ycxgBIAMoCzIqLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Db25uZWN0b3JEZXNjcmlwdG9yIkcKElJvb21DbGltYXRlQ2hhbmdlZBIxCgRyb29tGAEgASgLMiMua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tQ2xpbWF0ZSJWChJDbGltYXRlTW9kZUNoYW5nZWQSMQoEbW9kZRgBIAEoCzIjLmt1c2ludGEuaW90LmNsaW1hdGUudjEuQ2xpbWF0ZU1vZGUSDQoFZW5kZWQYAiABKAgixgsKDkdhdGV3YXlNZXNzYWdlEhIKCm1lc3NhZ2VfaWQYASABKAkSKwoHc2VudF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASRAoOc3RhdGVfc25hcHNob3QYAyABKAsyKi5rdXNpbnRhLmlvdC53ZWJydGMudjEuRGV2aWNlU3RhdGVTbmFwc2hvdEgAEkAKD3Byb3BlcnR5X3JlcG9ydBgEIAEoCzIlLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcm9wZXJ0eVJlcG9ydEgAEkgKEXBlcm1pc3Npb25fdXBkYXRlGAUgASgLMisua3VzaW50YS5pb3Qud2VicnRjLnYxLkxpdmVQZXJtaXNzaW9uVXBkYXRlSAASPgoOY29tbWFuZF9yZXN1bHQYBiABKAsyJC5rdXNpbnRhLmlvdC53ZWJydGMudjEuQ29tbWFuZFJlc3VsdEgAEisKBHBvbmcYCCABKAsyGy5rdXNpbnRhLmlvdC53ZWJydGMudjEuUG9uZ0gAEkYKEmhhbmRzaGFrZV9yZWplY3RlZBgJIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5IYW5kc2hha2VSZWplY3RlZEgAEjQKBWVycm9yGAogASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLkdhdGV3YXlFcnJvckgAEkIKEHN1YnNjcmlwdGlvbl9hY2sYCyABKAsyJi5rdXNpbnRhLmlvdC53ZWJydGMudjEuU3Vic2NyaXB0aW9uQWNrSAASOgoMZGV2aWNlX2FkZGVkGAwgASgLMiIua3VzaW50YS5pb3Qud2VicnRjLnYxLkRldmljZUFkZGVkSAASPgoOZGV2aWNlX3JlbW92ZWQYDSABKAsyJC5rdXNpbnRhLmlvdC53ZWJydGMudjEuRGV2aWNlUmVtb3ZlZEgAEkQKEW1hbmFnZW1lbnRfcmVzdWx0GA4gASgLMicua3VzaW50YS5pb3Qud2VicnRjLnYxLk1hbmFnZW1lbnRSZXN1bHRIABJACg1kZXZpY2VfZXZlbnRzGBAgASgLMicua3VzaW50YS5pb3QuZGV2aWNlLnYxLkRldmljZUV2ZW50QmF0Y2hIABJACg9wYWlyaW5nX3N0YXJ0ZWQYESABKAsyJS5rdXNpbnRhLmlvdC53ZWJydGMudjEuUGFpcmluZ1N0YXJ0ZWRIABJCChBwYWlyaW5nX2ZpbmlzaGVkGBIgASgLMiYua3VzaW50YS5pb3Qud2VicnRjLnYxLlBhaXJpbmdGaW5pc2hlZEgAEjoKDGxpbmtfY2hhbmdlZBgTIAEoCzIiLmt1c2ludGEuaW90LndlYnJ0Yy52MS5MaW5rQ2hhbmdlZEgAEkoKFGNvbm5lY3RvcnNfYW5ub3VuY2VkGBQgASgLMioua3VzaW50YS5pb3Qud2VicnRjLnYxLkNvbm5lY3RvcnNBbm5vdW5jZWRIABJJChRyb29tX2NsaW1hdGVfY2hhbmdlZBgVIAEoCzIpLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Sb29tQ2xpbWF0ZUNoYW5nZWRIABJJChRjbGltYXRlX21vZGVfY2hhbmdlZBgWIAEoCzIpLmt1c2ludGEuaW90LndlYnJ0Yy52MS5DbGltYXRlTW9kZUNoYW5nZWRIABJNChZzZXJ2aWNlX3N0YXR1c19jaGFuZ2VkGBcgASgLMisua3VzaW50YS5pb3Qud2VicnRjLnYxLlNlcnZpY2VTdGF0dXNDaGFuZ2VkSAASPAoNc3BhY2VfaW52aXRlcxgYIAEoCzIjLmt1c2ludGEuaW90LndlYnJ0Yy52MS5TcGFjZUludml0ZXNIAEIJCgdwYXlsb2FkSgQIDxAQSgQIBxAIUhZhdHRyaWJ1dGVfd3JpdGVfcmVzdWx0Ug5wcm9wZXJ0eV9ldmVudCKDBQoKQXBwTWVzc2FnZRISCgptZXNzYWdlX2lkGAEgASgJEisKB3NlbnRfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjgKCWhhbmRzaGFrZRgDIAEoCzIjLmt1c2ludGEuaW90LndlYnJ0Yy52MS5BcHBIYW5kc2hha2VIABI3Cgdjb21tYW5kGAQgASgLMiQua3VzaW50YS5pb3Qud2VicnRjLnYxLkRldmljZUNvbW1hbmRIABJCCgxyZWFkX3JlcXVlc3QYBSABKAsyKi5rdXNpbnRhLmlvdC53ZWJydGMudjEuUHJvcGVydHlSZWFkUmVxdWVzdEgAEisKBHBpbmcYBiABKAsyGy5rdXNpbnRhLmlvdC53ZWJydGMudjEuUGluZ0gAEjwKCXN1YnNjcmliZRgHIAEoCzInLmt1c2ludGEuaW90LndlYnJ0Yy52MS5TdWJzY3JpYmVEZXZpY2VzSAASQAoLdW5zdWJzY3JpYmUYCCABKAsyKS5rdXNpbnRhLmlvdC53ZWJydGMudjEuVW5zdWJzY3JpYmVEZXZpY2VzSAASPgoKbWFuYWdlbWVudBgJIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5NYW5hZ2VtZW50UmVxdWVzdEgAEkcKD2F0dHJpYnV0ZV93cml0ZRgKIAEoCzIsLmt1c2ludGEuaW90LndlYnJ0Yy52MS5BdHRyaWJ1dGVXcml0ZVJlcXVlc3RIABI8Cg1zdGFydF9wYWlyaW5nGAsgASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLlN0YXJ0UGFpcmluZ0gAQgkKB3BheWxvYWQqogIKEEdhdGV3YXlFcnJvckNvZGUSIgoeR0FURVdBWV9FUlJPUl9DT0RFX1VOU1BFQ0lGSUVEEAASIwofR0FURVdBWV9FUlJPUl9DT0RFX05PVF9FTlRJVExFRBABEiYKIkdBVEVXQVlfRVJST1JfQ09ERV9JTlZBTElEX1JFUVVFU1QQAhIiCh5HQVRFV0FZX0VSUk9SX0NPREVfVU5BVkFJTEFCTEUQAxIfChtHQVRFV0FZX0VSUk9SX0NPREVfSU5URVJOQUwQBBIsCihHQVRFV0FZX0VSUk9SX0NPREVfU0VTU0lPTl9MSU1JVF9SRUFDSEVEEAUSKgomR0FURVdBWV9FUlJPUl9DT0RFX0ZBSUxFRF9QUkVDT05ESVRJT04QBkICSAFiBnByb3RvMw", [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_invite, file_kusinta_iot_webrtc_v1_management, file_kusinta_iot_webrtc_v1_members, file_kusinta_iot_webrtc_v1_permission_push]);
25
27
 
26
28
  /**
27
29
  * Describes the message kusinta.iot.webrtc.v1.Ping.
@@ -0,0 +1,421 @@
1
+ // @generated by protoc-gen-es v2.12.0 with parameter "target=js+dts,import_extension=js"
2
+ // @generated from file kusinta/iot/webrtc/v1/invite.proto (package kusinta.iot.webrtc.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
+ import type { Message } from "@bufbuild/protobuf";
7
+ import type { SpaceId, UserId } from "../../identity/v1/identity_pb.js";
8
+ import type { MembershipRelation } from "../../access/v1/roles_pb.js";
9
+ import type { Timestamp } from "@bufbuild/protobuf/wkt";
10
+
11
+ /**
12
+ * Describes the file kusinta/iot/webrtc/v1/invite.proto.
13
+ */
14
+ export declare const file_kusinta_iot_webrtc_v1_invite: GenFile;
15
+
16
+ /**
17
+ * Creates an invite on a space.
18
+ *
19
+ * relation is RESIDENT or SERVICE and nothing else, and it decides the role the person
20
+ * will hold: a resident for RESIDENT, a technician for SERVICE. RESIDENT is refused
21
+ * anywhere but a home (access.v1.MembershipRelation). No invite ever makes anyone a
22
+ * gateway administrator or a property owner: those come only by promotion of someone
23
+ * already a member, and any other relation is refused as INVALID_REQUEST.
24
+ *
25
+ * Who may create one is the gateway's decision, as for AssignUserToSpace. The gateway may
26
+ * let a home's residents invite residents into their own home only, within a limit per
27
+ * home. A caller over that limit is refused as FAILED_PRECONDITION with metadata
28
+ * {"reason": "household_full"}.
29
+ *
30
+ * A gateway holds at most 5000 invites whose secrets it reports
31
+ * (reporting.v1.ReportInviteRoutesRequest), used ones included until their secrets
32
+ * expire. Past that, CreateInvite MUST be refused as FAILED_PRECONDITION with metadata
33
+ * {"reason": "too_many_invites"}, so no invite exists that the api-server cannot route.
34
+ *
35
+ * Answered with IssuedInvite.
36
+ *
37
+ * @generated from message kusinta.iot.webrtc.v1.CreateInvite
38
+ */
39
+ export declare type CreateInvite = Message<"kusinta.iot.webrtc.v1.CreateInvite"> & {
40
+ /**
41
+ * @generated from field: kusinta.iot.identity.v1.SpaceId space_id = 1;
42
+ */
43
+ spaceId?: SpaceId | undefined;
44
+
45
+ /**
46
+ * @generated from field: kusinta.iot.access.v1.MembershipRelation relation = 2;
47
+ */
48
+ relation: MembershipRelation;
49
+
50
+ /**
51
+ * When set, the invite is bound to this address: only an account whose verified email
52
+ * is this address can redeem it (see RedeemInvite). Compared trimmed and
53
+ * case-insensitively over the whole address, with no other folding.
54
+ *
55
+ * One pending invite per space and address: a second for the same address on the same
56
+ * space is refused as FAILED_PRECONDITION with metadata {"reason": "already_invited",
57
+ * "invite_id": <the pending one>}, so the app can offer to resend that one instead.
58
+ *
59
+ * The gateway keeps the address only while the invite is pending, and drops it once the
60
+ * invite is redeemed, revoked or expired.
61
+ *
62
+ * @generated from field: string email = 3;
63
+ */
64
+ email: string;
65
+
66
+ /**
67
+ * When the technician's access ends, as SetAccessUntil describes it. SERVICE only: set
68
+ * on a RESIDENT invite it is INVALID_REQUEST, as is a time not after now. Unset for no
69
+ * end. Both secrets expire no later than it.
70
+ *
71
+ * It reaches only someone the redeem makes a technician: a user who held no role but
72
+ * ROLE_RESIDENT before. For anyone else redeeming the invite it is ignored, so an invite
73
+ * can neither shorten nor lengthen a member's access, nor put an end on a property owner
74
+ * or an administrator.
75
+ *
76
+ * @generated from field: google.protobuf.Timestamp access_until = 4;
77
+ */
78
+ accessUntil?: Timestamp | undefined;
79
+ };
80
+
81
+ /**
82
+ * Describes the message kusinta.iot.webrtc.v1.CreateInvite.
83
+ * Use `create(CreateInviteSchema)` to create a new message.
84
+ */
85
+ export declare const CreateInviteSchema: GenMessage<CreateInvite>;
86
+
87
+ /**
88
+ * Gives a pending invite new secrets. The old token and code stop working at once, so
89
+ * only the newest link, code or email does. Both expiries restart from now. Answered
90
+ * with IssuedInvite. An invite's bound address cannot be changed: revoke it and create
91
+ * another.
92
+ *
93
+ * @generated from message kusinta.iot.webrtc.v1.ResendInvite
94
+ */
95
+ export declare type ResendInvite = Message<"kusinta.iot.webrtc.v1.ResendInvite"> & {
96
+ /**
97
+ * @generated from field: string invite_id = 1;
98
+ */
99
+ inviteId: string;
100
+ };
101
+
102
+ /**
103
+ * Describes the message kusinta.iot.webrtc.v1.ResendInvite.
104
+ * Use `create(ResendInviteSchema)` to create a new message.
105
+ */
106
+ export declare const ResendInviteSchema: GenMessage<ResendInvite>;
107
+
108
+ /**
109
+ * Ends a pending invite: neither secret works from now on. Answered with ManagementAck.
110
+ *
111
+ * @generated from message kusinta.iot.webrtc.v1.RevokeInvite
112
+ */
113
+ export declare type RevokeInvite = Message<"kusinta.iot.webrtc.v1.RevokeInvite"> & {
114
+ /**
115
+ * @generated from field: string invite_id = 1;
116
+ */
117
+ inviteId: string;
118
+ };
119
+
120
+ /**
121
+ * Describes the message kusinta.iot.webrtc.v1.RevokeInvite.
122
+ * Use `create(RevokeInviteSchema)` to create a new message.
123
+ */
124
+ export declare const RevokeInviteSchema: GenMessage<RevokeInvite>;
125
+
126
+ /**
127
+ * Records that the email carrying this invite's newest secrets was sent, so the list can
128
+ * say whether it ever left. Sent by the app after the api-server has accepted the email,
129
+ * and again after each resend. Only the time is kept. Answered with ManagementAck.
130
+ *
131
+ * @generated from message kusinta.iot.webrtc.v1.MarkInviteEmailSent
132
+ */
133
+ export declare type MarkInviteEmailSent = Message<"kusinta.iot.webrtc.v1.MarkInviteEmailSent"> & {
134
+ /**
135
+ * @generated from field: string invite_id = 1;
136
+ */
137
+ inviteId: string;
138
+ };
139
+
140
+ /**
141
+ * Describes the message kusinta.iot.webrtc.v1.MarkInviteEmailSent.
142
+ * Use `create(MarkInviteEmailSentSchema)` to create a new message.
143
+ */
144
+ export declare const MarkInviteEmailSentSchema: GenMessage<MarkInviteEmailSent>;
145
+
146
+ /**
147
+ * The pending invites and join requests of a space. Answered with SpaceInvites. Listed
148
+ * only to a caller who may create invites on the space; anyone else is refused as
149
+ * NOT_ENTITLED. A resident is listed only the invites a resident of their home made,
150
+ * and the join requests those made: nothing they cannot act on.
151
+ *
152
+ * @generated from message kusinta.iot.webrtc.v1.ListSpaceInvites
153
+ */
154
+ export declare type ListSpaceInvites = Message<"kusinta.iot.webrtc.v1.ListSpaceInvites"> & {
155
+ /**
156
+ * @generated from field: kusinta.iot.identity.v1.SpaceId space_id = 1;
157
+ */
158
+ spaceId?: SpaceId | undefined;
159
+ };
160
+
161
+ /**
162
+ * Describes the message kusinta.iot.webrtc.v1.ListSpaceInvites.
163
+ * Use `create(ListSpaceInvitesSchema)` to create a new message.
164
+ */
165
+ export declare const ListSpaceInvitesSchema: GenMessage<ListSpaceInvites>;
166
+
167
+ /**
168
+ * Files the person who made a join request on its space, with its relation, and the role
169
+ * that relation gives. Answered with ManagementAck.
170
+ *
171
+ * Who may approve is the gateway's decision: whoever may put people on that space, and,
172
+ * for a request that came from an invite a resident created, a resident of that home.
173
+ *
174
+ * @generated from message kusinta.iot.webrtc.v1.ApproveJoinRequest
175
+ */
176
+ export declare type ApproveJoinRequest = Message<"kusinta.iot.webrtc.v1.ApproveJoinRequest"> & {
177
+ /**
178
+ * @generated from field: string request_id = 1;
179
+ */
180
+ requestId: string;
181
+ };
182
+
183
+ /**
184
+ * Describes the message kusinta.iot.webrtc.v1.ApproveJoinRequest.
185
+ * Use `create(ApproveJoinRequestSchema)` to create a new message.
186
+ */
187
+ export declare const ApproveJoinRequestSchema: GenMessage<ApproveJoinRequest>;
188
+
189
+ /**
190
+ * Drops a join request. The person is told nothing beyond never being let in. Answered
191
+ * with ManagementAck.
192
+ *
193
+ * @generated from message kusinta.iot.webrtc.v1.DenyJoinRequest
194
+ */
195
+ export declare type DenyJoinRequest = Message<"kusinta.iot.webrtc.v1.DenyJoinRequest"> & {
196
+ /**
197
+ * @generated from field: string request_id = 1;
198
+ */
199
+ requestId: string;
200
+ };
201
+
202
+ /**
203
+ * Describes the message kusinta.iot.webrtc.v1.DenyJoinRequest.
204
+ * Use `create(DenyJoinRequestSchema)` to create a new message.
205
+ */
206
+ export declare const DenyJoinRequestSchema: GenMessage<DenyJoinRequest>;
207
+
208
+ /**
209
+ * A pending invite, as listed. Never carries a secret: the gateway does not keep them.
210
+ *
211
+ * @generated from message kusinta.iot.webrtc.v1.Invite
212
+ */
213
+ export declare type Invite = Message<"kusinta.iot.webrtc.v1.Invite"> & {
214
+ /**
215
+ * Minted by the gateway, opaque.
216
+ *
217
+ * @generated from field: string invite_id = 1;
218
+ */
219
+ inviteId: string;
220
+
221
+ /**
222
+ * @generated from field: kusinta.iot.identity.v1.SpaceId space_id = 2;
223
+ */
224
+ spaceId?: SpaceId | undefined;
225
+
226
+ /**
227
+ * @generated from field: kusinta.iot.access.v1.MembershipRelation relation = 3;
228
+ */
229
+ relation: MembershipRelation;
230
+
231
+ /**
232
+ * Who created it, and when. A resend changes neither.
233
+ *
234
+ * @generated from field: kusinta.iot.identity.v1.UserId created_by = 4;
235
+ */
236
+ createdBy?: UserId | undefined;
237
+
238
+ /**
239
+ * @generated from field: google.protobuf.Timestamp created_at = 5;
240
+ */
241
+ createdAt?: Timestamp | undefined;
242
+
243
+ /**
244
+ * Until when each secret can be redeemed. The app shows them in local time and never
245
+ * works them out itself. Once both have passed the invite is gone: it is not listed, and
246
+ * the gateway drops it with its address.
247
+ *
248
+ * @generated from field: google.protobuf.Timestamp token_expires_at = 6;
249
+ */
250
+ tokenExpiresAt?: Timestamp | undefined;
251
+
252
+ /**
253
+ * @generated from field: google.protobuf.Timestamp code_expires_at = 7;
254
+ */
255
+ codeExpiresAt?: Timestamp | undefined;
256
+
257
+ /**
258
+ * The address it is bound to; empty when it is bound to none.
259
+ *
260
+ * @generated from field: string email = 8;
261
+ */
262
+ email: string;
263
+
264
+ /**
265
+ * When the email with the newest secrets was sent (MarkInviteEmailSent). Unset when no
266
+ * email was sent since the last resend.
267
+ *
268
+ * @generated from field: google.protobuf.Timestamp email_sent_at = 9;
269
+ */
270
+ emailSentAt?: Timestamp | undefined;
271
+
272
+ /**
273
+ * As CreateInvite.access_until.
274
+ *
275
+ * @generated from field: google.protobuf.Timestamp access_until = 10;
276
+ */
277
+ accessUntil?: Timestamp | undefined;
278
+ };
279
+
280
+ /**
281
+ * Describes the message kusinta.iot.webrtc.v1.Invite.
282
+ * Use `create(InviteSchema)` to create a new message.
283
+ */
284
+ export declare const InviteSchema: GenMessage<Invite>;
285
+
286
+ /**
287
+ * A new invite or a resent one, with its secrets. This is the only time they are told:
288
+ * the gateway keeps only their hashes, and the app does not keep them beyond handing them
289
+ * over.
290
+ *
291
+ * @generated from message kusinta.iot.webrtc.v1.IssuedInvite
292
+ */
293
+ export declare type IssuedInvite = Message<"kusinta.iot.webrtc.v1.IssuedInvite"> & {
294
+ /**
295
+ * @generated from field: kusinta.iot.webrtc.v1.Invite invite = 1;
296
+ */
297
+ invite?: Invite | undefined;
298
+
299
+ /**
300
+ * @generated from field: string token = 2;
301
+ */
302
+ token: string;
303
+
304
+ /**
305
+ * @generated from field: string code = 3;
306
+ */
307
+ code: string;
308
+ };
309
+
310
+ /**
311
+ * Describes the message kusinta.iot.webrtc.v1.IssuedInvite.
312
+ * Use `create(IssuedInviteSchema)` to create a new message.
313
+ */
314
+ export declare const IssuedInviteSchema: GenMessage<IssuedInvite>;
315
+
316
+ /**
317
+ * A person who redeemed an invite that needs approval, waiting for it.
318
+ *
319
+ * @generated from message kusinta.iot.webrtc.v1.JoinRequest
320
+ */
321
+ export declare type JoinRequest = Message<"kusinta.iot.webrtc.v1.JoinRequest"> & {
322
+ /**
323
+ * Minted by the gateway, opaque.
324
+ *
325
+ * @generated from field: string request_id = 1;
326
+ */
327
+ requestId: string;
328
+
329
+ /**
330
+ * @generated from field: kusinta.iot.identity.v1.SpaceId space_id = 2;
331
+ */
332
+ spaceId?: SpaceId | undefined;
333
+
334
+ /**
335
+ * @generated from field: kusinta.iot.access.v1.MembershipRelation relation = 3;
336
+ */
337
+ relation: MembershipRelation;
338
+
339
+ /**
340
+ * Who is asking to join, and the display name their account gave when they redeemed.
341
+ *
342
+ * @generated from field: kusinta.iot.identity.v1.UserId user_id = 4;
343
+ */
344
+ userId?: UserId | undefined;
345
+
346
+ /**
347
+ * @generated from field: string display_name = 5;
348
+ */
349
+ displayName: string;
350
+
351
+ /**
352
+ * Who created the invite that was redeemed.
353
+ *
354
+ * @generated from field: kusinta.iot.identity.v1.UserId invited_by = 6;
355
+ */
356
+ invitedBy?: UserId | undefined;
357
+
358
+ /**
359
+ * @generated from field: google.protobuf.Timestamp requested_at = 7;
360
+ */
361
+ requestedAt?: Timestamp | undefined;
362
+
363
+ /**
364
+ * When the request lapses unanswered, and the gateway drops it as if denied.
365
+ *
366
+ * @generated from field: google.protobuf.Timestamp expires_at = 8;
367
+ */
368
+ expiresAt?: Timestamp | undefined;
369
+
370
+ /**
371
+ * The verified email address of the account asking (signaling.v1.RedeemInvite), shown to
372
+ * whoever may approve the request, a resident approver included. A display name is
373
+ * whatever the person chose; this is what lets an approver tell who is really asking. The
374
+ * app tells a person redeeming that their address will be shown so. Kept only while the
375
+ * request is pending.
376
+ *
377
+ * @generated from field: string email = 9;
378
+ */
379
+ email: string;
380
+ };
381
+
382
+ /**
383
+ * Describes the message kusinta.iot.webrtc.v1.JoinRequest.
384
+ * Use `create(JoinRequestSchema)` to create a new message.
385
+ */
386
+ export declare const JoinRequestSchema: GenMessage<JoinRequest>;
387
+
388
+ /**
389
+ * What a space is waiting on: its pending invites and its join requests.
390
+ *
391
+ * The answer to ListSpaceInvites, and pushed as GatewayMessage.space_invites whenever
392
+ * either list changes — a create, resend, revoke, redeem, approval, denial or expiry — to
393
+ * every session that may list it, so the app shows the change without reloading. A push
394
+ * always carries the whole of both lists for its space, as ListSpaceInvites would list
395
+ * them to that session.
396
+ *
397
+ * @generated from message kusinta.iot.webrtc.v1.SpaceInvites
398
+ */
399
+ export declare type SpaceInvites = Message<"kusinta.iot.webrtc.v1.SpaceInvites"> & {
400
+ /**
401
+ * @generated from field: kusinta.iot.identity.v1.SpaceId space_id = 1;
402
+ */
403
+ spaceId?: SpaceId | undefined;
404
+
405
+ /**
406
+ * @generated from field: repeated kusinta.iot.webrtc.v1.Invite invites = 2;
407
+ */
408
+ invites: Invite[];
409
+
410
+ /**
411
+ * @generated from field: repeated kusinta.iot.webrtc.v1.JoinRequest join_requests = 3;
412
+ */
413
+ joinRequests: JoinRequest[];
414
+ };
415
+
416
+ /**
417
+ * Describes the message kusinta.iot.webrtc.v1.SpaceInvites.
418
+ * Use `create(SpaceInvitesSchema)` to create a new message.
419
+ */
420
+ export declare const SpaceInvitesSchema: GenMessage<SpaceInvites>;
421
+
@@ -0,0 +1,92 @@
1
+ // @generated by protoc-gen-es v2.12.0 with parameter "target=js+dts,import_extension=js"
2
+ // @generated from file kusinta/iot/webrtc/v1/invite.proto (package kusinta.iot.webrtc.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
6
+ import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
7
+ import { file_kusinta_iot_access_v1_roles } from "../../access/v1/roles_pb.js";
8
+ import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identity_pb.js";
9
+
10
+ /**
11
+ * Describes the file kusinta/iot/webrtc/v1/invite.proto.
12
+ */
13
+ export const file_kusinta_iot_webrtc_v1_invite = /*@__PURE__*/
14
+ fileDesc("CiJrdXNpbnRhL2lvdC93ZWJydGMvdjEvaW52aXRlLnByb3RvEhVrdXNpbnRhLmlvdC53ZWJydGMudjEiwAEKDENyZWF0ZUludml0ZRIyCghzcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSOwoIcmVsYXRpb24YAiABKA4yKS5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuTWVtYmVyc2hpcFJlbGF0aW9uEg0KBWVtYWlsGAMgASgJEjAKDGFjY2Vzc191bnRpbBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiIQoMUmVzZW5kSW52aXRlEhEKCWludml0ZV9pZBgBIAEoCSIhCgxSZXZva2VJbnZpdGUSEQoJaW52aXRlX2lkGAEgASgJIigKE01hcmtJbnZpdGVFbWFpbFNlbnQSEQoJaW52aXRlX2lkGAEgASgJIkYKEExpc3RTcGFjZUludml0ZXMSMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkIigKEkFwcHJvdmVKb2luUmVxdWVzdBISCgpyZXF1ZXN0X2lkGAEgASgJIiUKD0RlbnlKb2luUmVxdWVzdBISCgpyZXF1ZXN0X2lkGAEgASgJItADCgZJbnZpdGUSEQoJaW52aXRlX2lkGAEgASgJEjIKCHNwYWNlX2lkGAIgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI7CghyZWxhdGlvbhgDIAEoDjIpLmt1c2ludGEuaW90LmFjY2Vzcy52MS5NZW1iZXJzaGlwUmVsYXRpb24SMwoKY3JlYXRlZF9ieRgEIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIuCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI0ChB0b2tlbl9leHBpcmVzX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCg9jb2RlX2V4cGlyZXNfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg0KBWVtYWlsGAggASgJEjEKDWVtYWlsX3NlbnRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGFjY2Vzc191bnRpbBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiWgoMSXNzdWVkSW52aXRlEi0KBmludml0ZRgBIAEoCzIdLmt1c2ludGEuaW90LndlYnJ0Yy52MS5JbnZpdGUSDQoFdG9rZW4YAiABKAkSDAoEY29kZRgDIAEoCSKAAwoLSm9pblJlcXVlc3QSEgoKcmVxdWVzdF9pZBgBIAEoCRIyCghzcGFjZV9pZBgCIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSOwoIcmVsYXRpb24YAyABKA4yKS5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuTWVtYmVyc2hpcFJlbGF0aW9uEjAKB3VzZXJfaWQYBCABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSFAoMZGlzcGxheV9uYW1lGAUgASgJEjMKCmludml0ZWRfYnkYBiABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSMAoMcmVxdWVzdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpleHBpcmVzX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgVlbWFpbBgJIAEoCSKtAQoMU3BhY2VJbnZpdGVzEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIuCgdpbnZpdGVzGAIgAygLMh0ua3VzaW50YS5pb3Qud2VicnRjLnYxLkludml0ZRI5Cg1qb2luX3JlcXVlc3RzGAMgAygLMiIua3VzaW50YS5pb3Qud2VicnRjLnYxLkpvaW5SZXF1ZXN0QgJIAWIGcHJvdG8z", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_roles, file_kusinta_iot_identity_v1_identity]);
15
+
16
+ /**
17
+ * Describes the message kusinta.iot.webrtc.v1.CreateInvite.
18
+ * Use `create(CreateInviteSchema)` to create a new message.
19
+ */
20
+ export const CreateInviteSchema = /*@__PURE__*/
21
+ messageDesc(file_kusinta_iot_webrtc_v1_invite, 0);
22
+
23
+ /**
24
+ * Describes the message kusinta.iot.webrtc.v1.ResendInvite.
25
+ * Use `create(ResendInviteSchema)` to create a new message.
26
+ */
27
+ export const ResendInviteSchema = /*@__PURE__*/
28
+ messageDesc(file_kusinta_iot_webrtc_v1_invite, 1);
29
+
30
+ /**
31
+ * Describes the message kusinta.iot.webrtc.v1.RevokeInvite.
32
+ * Use `create(RevokeInviteSchema)` to create a new message.
33
+ */
34
+ export const RevokeInviteSchema = /*@__PURE__*/
35
+ messageDesc(file_kusinta_iot_webrtc_v1_invite, 2);
36
+
37
+ /**
38
+ * Describes the message kusinta.iot.webrtc.v1.MarkInviteEmailSent.
39
+ * Use `create(MarkInviteEmailSentSchema)` to create a new message.
40
+ */
41
+ export const MarkInviteEmailSentSchema = /*@__PURE__*/
42
+ messageDesc(file_kusinta_iot_webrtc_v1_invite, 3);
43
+
44
+ /**
45
+ * Describes the message kusinta.iot.webrtc.v1.ListSpaceInvites.
46
+ * Use `create(ListSpaceInvitesSchema)` to create a new message.
47
+ */
48
+ export const ListSpaceInvitesSchema = /*@__PURE__*/
49
+ messageDesc(file_kusinta_iot_webrtc_v1_invite, 4);
50
+
51
+ /**
52
+ * Describes the message kusinta.iot.webrtc.v1.ApproveJoinRequest.
53
+ * Use `create(ApproveJoinRequestSchema)` to create a new message.
54
+ */
55
+ export const ApproveJoinRequestSchema = /*@__PURE__*/
56
+ messageDesc(file_kusinta_iot_webrtc_v1_invite, 5);
57
+
58
+ /**
59
+ * Describes the message kusinta.iot.webrtc.v1.DenyJoinRequest.
60
+ * Use `create(DenyJoinRequestSchema)` to create a new message.
61
+ */
62
+ export const DenyJoinRequestSchema = /*@__PURE__*/
63
+ messageDesc(file_kusinta_iot_webrtc_v1_invite, 6);
64
+
65
+ /**
66
+ * Describes the message kusinta.iot.webrtc.v1.Invite.
67
+ * Use `create(InviteSchema)` to create a new message.
68
+ */
69
+ export const InviteSchema = /*@__PURE__*/
70
+ messageDesc(file_kusinta_iot_webrtc_v1_invite, 7);
71
+
72
+ /**
73
+ * Describes the message kusinta.iot.webrtc.v1.IssuedInvite.
74
+ * Use `create(IssuedInviteSchema)` to create a new message.
75
+ */
76
+ export const IssuedInviteSchema = /*@__PURE__*/
77
+ messageDesc(file_kusinta_iot_webrtc_v1_invite, 8);
78
+
79
+ /**
80
+ * Describes the message kusinta.iot.webrtc.v1.JoinRequest.
81
+ * Use `create(JoinRequestSchema)` to create a new message.
82
+ */
83
+ export const JoinRequestSchema = /*@__PURE__*/
84
+ messageDesc(file_kusinta_iot_webrtc_v1_invite, 9);
85
+
86
+ /**
87
+ * Describes the message kusinta.iot.webrtc.v1.SpaceInvites.
88
+ * Use `create(SpaceInvitesSchema)` to create a new message.
89
+ */
90
+ export const SpaceInvitesSchema = /*@__PURE__*/
91
+ messageDesc(file_kusinta_iot_webrtc_v1_invite, 10);
92
+