@kusinta/iot-schema 0.2.0-beta.46 → 0.2.0-beta.47

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.
@@ -4,13 +4,14 @@
4
4
 
5
5
  import { enumDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/codegenv2";
6
6
  import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
7
+ import { file_kusinta_iot_access_v1_roles } from "../../access/v1/roles_pb.js";
7
8
  import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identity_pb.js";
8
9
 
9
10
  /**
10
11
  * Describes the file kusinta/iot/climate/v1/climate.proto.
11
12
  */
12
13
  export const file_kusinta_iot_climate_v1_climate = /*@__PURE__*/
13
- fileDesc("CiRrdXNpbnRhL2lvdC9jbGltYXRlL3YxL2NsaW1hdGUucHJvdG8SFmt1c2ludGEuaW90LmNsaW1hdGUudjEiogEKDFRhcmdldENoYW5nZRImCgJhdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoEdXNlchgCIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZEgAEjMKBmRldmljZRgDIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkSABCBAoCYnkizggKC1Jvb21DbGltYXRlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIgChN0YXJnZXRfY2VudGlkZWdyZWVzGAIgASgRSACIAQESOwoNdGFyZ2V0X2NoYW5nZRgDIAEoCzIkLmt1c2ludGEuaW90LmNsaW1hdGUudjEuVGFyZ2V0Q2hhbmdlEioKHWVmZmVjdGl2ZV90YXJnZXRfY2VudGlkZWdyZWVzGAQgASgRSAGIAQESFgoOb3ZlcnJpZGVzX21vZGUYBSABKAgSNwoNbW9kZV9zcGFjZV9pZBgNIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSHQoQbWluX2NlbnRpZGVncmVlcxgGIAEoEUgCiAEBEh0KEG1heF9jZW50aWRlZ3JlZXMYByABKBFIA4gBARI1CgpzZW5zb3JfaWRzGAggAygLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSGgoSc2Vuc29yc19jb25maWd1cmVkGA4gASgIEiIKFW1lYXN1cmVkX2NlbnRpZGVncmVlcxgJIAEoEUgEiAEBEjYKC21lYXN1cmVkX2J5GAogASgLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSPwoJY29uZGl0aW9uGAsgASgOMiwua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tQ2xpbWF0ZUNvbmRpdGlvbhIcChRsb2NrX2RldmljZV9jb250cm9scxgMIAEoCBIWCg5zdGF0ZV93aXRoaGVsZBgPIAEoCBJACgxleHBsYW5hdGlvbnMYECADKAsyKi5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVFeHBsYW5hdGlvbhI1ChF0YXJnZXRfaGVsZF91bnRpbBgRIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNgoIcGxhbm5pbmcYEiABKA4yJC5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21QbGFubmluZxIqCh1jb21mb3J0X2JhbmRfbG93X2NlbnRpZGVncmVlcxgTIAEoEUgFiAEBEisKHmNvbWZvcnRfYmFuZF9oaWdoX2NlbnRpZGVncmVlcxgUIAEoEUgGiAEBQhYKFF90YXJnZXRfY2VudGlkZWdyZWVzQiAKHl9lZmZlY3RpdmVfdGFyZ2V0X2NlbnRpZGVncmVlc0ITChFfbWluX2NlbnRpZGVncmVlc0ITChFfbWF4X2NlbnRpZGVncmVlc0IYChZfbWVhc3VyZWRfY2VudGlkZWdyZWVzQiAKHl9jb21mb3J0X2JhbmRfbG93X2NlbnRpZGVncmVlc0IhCh9fY29tZm9ydF9iYW5kX2hpZ2hfY2VudGlkZWdyZWVzIsMBChJDbGltYXRlRXhwbGFuYXRpb24SPAoEa2luZBgBIAEoDjIuLmt1c2ludGEuaW90LmNsaW1hdGUudjEuQ2xpbWF0ZUV4cGxhbmF0aW9uS2luZBJCCgdzdWJqZWN0GAIgASgOMjEua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlRXhwbGFuYXRpb25TdWJqZWN0EisKB2VuZHNfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIoMDCgtDbGltYXRlTW9kZRIyCghzcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNQoEa2luZBgCIAEoDjInLmt1c2ludGEuaW90LmNsaW1hdGUudjEuQ2xpbWF0ZU1vZGVLaW5kEiEKFHNldGJhY2tfY2VudGlkZWdyZWVzGAMgASgRSACIAQESLQoJc3RhcnRzX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgdlbmRzX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgZzZXRfYnkYBiABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSMgoJd2FybV9mcm9tGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBQhcKFV9zZXRiYWNrX2NlbnRpZGVncmVlc0IMCgpfd2FybV9mcm9tInkKD1Jvb21DbGltYXRlTGlzdBIyCgVyb29tcxgBIAMoCzIjLmt1c2ludGEuaW90LmNsaW1hdGUudjEuUm9vbUNsaW1hdGUSMgoFbW9kZXMYAiADKAsyIy5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVNb2RlIrEDChFSb29tSGlzdG9yeVNhbXBsZRImCgJhdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASIgoVbWVhc3VyZWRfY2VudGlkZWdyZWVzGAIgASgRSACIAQESIAoTdGFyZ2V0X2NlbnRpZGVncmVlcxgDIAEoEUgBiAEBEioKHWVmZmVjdGl2ZV90YXJnZXRfY2VudGlkZWdyZWVzGAQgASgRSAKIAQESIAoTdmFsdmVfb3Blbl9wZXJtaWxsZRgFIAEoDUgDiAEBEh8KEnZhbHZlX29wZW5fc2Vjb25kcxgGIAEoDUgEiAEBEiIKFWZsb29yX2hlYXRpbmdfc2Vjb25kcxgHIAEoDUgFiAEBQhgKFl9tZWFzdXJlZF9jZW50aWRlZ3JlZXNCFgoUX3RhcmdldF9jZW50aWRlZ3JlZXNCIAoeX2VmZmVjdGl2ZV90YXJnZXRfY2VudGlkZWdyZWVzQhYKFF92YWx2ZV9vcGVuX3Blcm1pbGxlQhUKE192YWx2ZV9vcGVuX3NlY29uZHNCGAoWX2Zsb29yX2hlYXRpbmdfc2Vjb25kcyLQAgoLUm9vbUhpc3RvcnkSMQoHcm9vbV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSLQoJa2VwdF9mcm9tGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI6CgdzYW1wbGVzGAMgAygLMikua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tSGlzdG9yeVNhbXBsZRJBCgpyZXNvbHV0aW9uGAQgASgOMi0ua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tSGlzdG9yeVJlc29sdXRpb24SMAoMY292ZXJlZF9mcm9tGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpjb3ZlcmVkX3RvGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLUAgoRQ2xpbWF0ZVBlcmlvZE1lYW4SLQoJc3RhcnRzX2F0GAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgdlbmRzX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIiChVtZWFzdXJlZF9jZW50aWRlZ3JlZXMYAyABKBFIAIgBARIgChN0YXJnZXRfY2VudGlkZWdyZWVzGAQgASgRSAGIAQESIgoabWVhc3VyZWRfY292ZXJhZ2VfcGVybWlsbGUYBSABKA0SIAoYdGFyZ2V0X2NvdmVyYWdlX3Blcm1pbGxlGAYgASgNEhYKDnJvb21zX21lYXN1cmVkGAcgASgNEg0KBXJvb21zGAggASgNQhgKFl9tZWFzdXJlZF9jZW50aWRlZ3JlZXNCFgoUX3RhcmdldF9jZW50aWRlZ3JlZXMivgIKF0FwYXJ0bWVudENsaW1hdGVTdW1tYXJ5EjYKDGFwYXJ0bWVudF9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSPAoGcGVyaW9kGAIgASgOMiwua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlU3VtbWFyeVBlcmlvZBJCCgl3ZWlnaHRpbmcYAyABKA4yLy5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVTdW1tYXJ5V2VpZ2h0aW5nEi0KCWtlcHRfZnJvbRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOgoHcGVyaW9kcxgFIAMoCzIpLmt1c2ludGEuaW90LmNsaW1hdGUudjEuQ2xpbWF0ZVBlcmlvZE1lYW4q1QIKFFJvb21DbGltYXRlQ29uZGl0aW9uEiYKIlJPT01fQ0xJTUFURV9DT05ESVRJT05fVU5TUEVDSUZJRUQQABIiCh5ST09NX0NMSU1BVEVfQ09ORElUSU9OX0hPTERJTkcQARIkCiBST09NX0NMSU1BVEVfQ09ORElUSU9OX05PX1RBUkdFVBACEiYKIlJPT01fQ0xJTUFURV9DT05ESVRJT05fU0VOU09SX0xPU1QQAxImCiJST09NX0NMSU1BVEVfQ09ORElUSU9OX1dJTkRPV19PUEVOEAQSJQohUk9PTV9DTElNQVRFX0NPTkRJVElPTl9OT19IRUFUSU5HEAUSLgoqUk9PTV9DTElNQVRFX0NPTkRJVElPTl9IRUFUSU5HX1VOUkVBQ0hBQkxFEAYSJAogUk9PTV9DTElNQVRFX0NPTkRJVElPTl9OT19TRU5TT1IQByqGAQoMUm9vbVBsYW5uaW5nEh0KGVJPT01fUExBTk5JTkdfVU5TUEVDSUZJRUQQABIZChVST09NX1BMQU5OSU5HX1BMQU5ORUQQARIdChlST09NX1BMQU5OSU5HX05PVF9QTEFOTkVEEAISHQoZUk9PTV9QTEFOTklOR19VTkFWQUlMQUJMRRADKoAEChZDbGltYXRlRXhwbGFuYXRpb25LaW5kEigKJENMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9VTlNQRUNJRklFRBAAEiUKIUNMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9QUkVfSEVBVBABEiUKIUNMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9DT0FTVElORxACEicKI0NMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9QUklDRV9ISUdIEAMSJwojQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX1BFQUtfR1VBUkQQBBIvCitDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfSE9UX1dBVEVSX1BSSU9SSVRZEAUSMAosQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX1NIQVJFRF9QT1dFUl9CVURHRVQQBhIyCi5DTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfRElTVFJJQ1RfSEVBVElOR19QRUFLEAcSLworQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX0FUX0NPTUZPUlRfQ0VJTElORxAIEicKI0NMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9OT19SRUFESU5HEAkSKwonQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX09VVFNJREVfV0lORE9XEAoq9wEKGUNsaW1hdGVFeHBsYW5hdGlvblN1YmplY3QSKwonQ0xJTUFURV9FWFBMQU5BVElPTl9TVUJKRUNUX1VOU1BFQ0lGSUVEEAASJAogQ0xJTUFURV9FWFBMQU5BVElPTl9TVUJKRUNUX1JPT00QARIqCiZDTElNQVRFX0VYUExBTkFUSU9OX1NVQkpFQ1RfRkxPT1JfWk9ORRACEiwKKENMSU1BVEVfRVhQTEFOQVRJT05fU1VCSkVDVF9DT01GT1JUX0xPQUQQAxItCilDTElNQVRFX0VYUExBTkFUSU9OX1NVQkpFQ1RfQUREX09OX0hFQVRFUhAEKm8KD0NsaW1hdGVNb2RlS2luZBIhCh1DTElNQVRFX01PREVfS0lORF9VTlNQRUNJRklFRBAAEhoKFkNMSU1BVEVfTU9ERV9LSU5EX0FXQVkQARIdChlDTElNQVRFX01PREVfS0lORF9IT0xJREFZEAIqjAEKFVJvb21IaXN0b3J5UmVzb2x1dGlvbhInCiNST09NX0hJU1RPUllfUkVTT0xVVElPTl9VTlNQRUNJRklFRBAAEigKJFJPT01fSElTVE9SWV9SRVNPTFVUSU9OX1FVQVJURVJfSE9VUhABEiAKHFJPT01fSElTVE9SWV9SRVNPTFVUSU9OX0hPVVIQAiqhAQoUQ2xpbWF0ZVN1bW1hcnlQZXJpb2QSJgoiQ0xJTUFURV9TVU1NQVJZX1BFUklPRF9VTlNQRUNJRklFRBAAEh4KGkNMSU1BVEVfU1VNTUFSWV9QRVJJT0RfREFZEAESHwobQ0xJTUFURV9TVU1NQVJZX1BFUklPRF9XRUVLEAISIAocQ0xJTUFURV9TVU1NQVJZX1BFUklPRF9NT05USBADKm8KF0NsaW1hdGVTdW1tYXJ5V2VpZ2h0aW5nEikKJUNMSU1BVEVfU1VNTUFSWV9XRUlHSFRJTkdfVU5TUEVDSUZJRUQQABIpCiVDTElNQVRFX1NVTU1BUllfV0VJR0hUSU5HX1JPT01TX0VRVUFMEAFCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_identity_v1_identity]);
14
+ fileDesc("CiRrdXNpbnRhL2lvdC9jbGltYXRlL3YxL2NsaW1hdGUucHJvdG8SFmt1c2ludGEuaW90LmNsaW1hdGUudjEitQEKDFRhcmdldENoYW5nZRImCgJhdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoEdXNlchgCIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZEgAEjMKBmRldmljZRgDIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkSAASEQoHbW92ZV9pbhgEIAEoCEgAQgQKAmJ5IqcLCgtSb29tQ2xpbWF0ZRIyCghzcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSIAoTdGFyZ2V0X2NlbnRpZGVncmVlcxgCIAEoEUgAiAEBEjsKDXRhcmdldF9jaGFuZ2UYAyABKAsyJC5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlRhcmdldENoYW5nZRIqCh1lZmZlY3RpdmVfdGFyZ2V0X2NlbnRpZGVncmVlcxgEIAEoEUgBiAEBEhYKDm92ZXJyaWRlc19tb2RlGAUgASgIEjcKDW1vZGVfc3BhY2VfaWQYDSABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEiEKEG1pbl9jZW50aWRlZ3JlZXMYBiABKBFCAhgBSAKIAQESIQoQbWF4X2NlbnRpZGVncmVlcxgHIAEoEUICGAFIA4gBARI1CgpzZW5zb3JfaWRzGAggAygLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSGgoSc2Vuc29yc19jb25maWd1cmVkGA4gASgIEiIKFW1lYXN1cmVkX2NlbnRpZGVncmVlcxgJIAEoEUgEiAEBEjYKC21lYXN1cmVkX2J5GAogASgLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSPwoJY29uZGl0aW9uGAsgASgOMiwua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tQ2xpbWF0ZUNvbmRpdGlvbhIcChRsb2NrX2RldmljZV9jb250cm9scxgMIAEoCBIWCg5zdGF0ZV93aXRoaGVsZBgPIAEoCBJACgxleHBsYW5hdGlvbnMYECADKAsyKi5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVFeHBsYW5hdGlvbhI1ChF0YXJnZXRfaGVsZF91bnRpbBgRIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNgoIcGxhbm5pbmcYEiABKA4yJC5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21QbGFubmluZxIqCh1jb21mb3J0X2JhbmRfbG93X2NlbnRpZGVncmVlcxgTIAEoEUgFiAEBEisKHmNvbWZvcnRfYmFuZF9oaWdoX2NlbnRpZGVncmVlcxgUIAEoEUgGiAEBEj0KDG91dGVyX2xpbWl0cxgVIAEoCzInLmt1c2ludGEuaW90LmNsaW1hdGUudjEuT3V0ZXJSb29tTGltaXRzEj0KDGlubmVyX2xpbWl0cxgWIAEoCzInLmt1c2ludGEuaW90LmNsaW1hdGUudjEuSW5uZXJSb29tTGltaXRzEkIKEW91dGVyX2xpbWl0X2NsYW1wGBcgASgLMicua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5PdXRlckxpbWl0Q2xhbXASSgoVb3V0ZXJfbGltaXRzX2NvdmVyYWdlGBggASgOMisua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5PdXRlckxpbWl0c0NvdmVyYWdlEkEKFm91dGVyX2JvdW5kX2RldmljZV9pZHMYGSADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZEIWChRfdGFyZ2V0X2NlbnRpZGVncmVlc0IgCh5fZWZmZWN0aXZlX3RhcmdldF9jZW50aWRlZ3JlZXNCEwoRX21pbl9jZW50aWRlZ3JlZXNCEwoRX21heF9jZW50aWRlZ3JlZXNCGAoWX21lYXN1cmVkX2NlbnRpZGVncmVlc0IgCh5fY29tZm9ydF9iYW5kX2xvd19jZW50aWRlZ3JlZXNCIQofX2NvbWZvcnRfYmFuZF9oaWdoX2NlbnRpZGVncmVlcyKAAQoKT3V0ZXJMaW1pdBIUCgxjZW50aWRlZ3JlZXMYASABKBESMAoLc2V0X2J5X3JvbGUYAiABKA4yGy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuUm9sZRIqCgZzZXRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIr8CCg9PdXRlclJvb21MaW1pdHMSLwoDbWluGAEgASgLMiIua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5PdXRlckxpbWl0Ei8KA21heBgCIAEoCzIiLmt1c2ludGEuaW90LmNsaW1hdGUudjEuT3V0ZXJMaW1pdBI0Cghhd2F5X21pbhgDIAEoCzIiLmt1c2ludGEuaW90LmNsaW1hdGUudjEuT3V0ZXJMaW1pdBI6Cg5tb3ZlX2luX3RhcmdldBgEIAEoCzIiLmt1c2ludGEuaW90LmNsaW1hdGUudjEuT3V0ZXJMaW1pdBIwCiNtaW5fYWNjZXB0ZWRfdGhyZXNob2xkX2NlbnRpZGVncmVlcxgFIAEoEUgAiAEBQiYKJF9taW5fYWNjZXB0ZWRfdGhyZXNob2xkX2NlbnRpZGVncmVlcyJ5Cg9Jbm5lclJvb21MaW1pdHMSHQoQbWluX2NlbnRpZGVncmVlcxgBIAEoEUgAiAEBEh0KEG1heF9jZW50aWRlZ3JlZXMYAiABKBFIAYgBAUITChFfbWluX2NlbnRpZGVncmVlc0ITChFfbWF4X2NlbnRpZGVncmVlcyKIAQoPT3V0ZXJMaW1pdENsYW1wEjUKBWxpbWl0GAEgASgOMiYua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5PdXRlckxpbWl0S2luZBIjChZ1bmNsYW1wZWRfY2VudGlkZWdyZWVzGAIgASgRSACIAQFCGQoXX3VuY2xhbXBlZF9jZW50aWRlZ3JlZXMiwwEKEkNsaW1hdGVFeHBsYW5hdGlvbhI8CgRraW5kGAEgASgOMi4ua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlRXhwbGFuYXRpb25LaW5kEkIKB3N1YmplY3QYAiABKA4yMS5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVFeHBsYW5hdGlvblN1YmplY3QSKwoHZW5kc19hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAigwMKC0NsaW1hdGVNb2RlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI1CgRraW5kGAIgASgOMicua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlTW9kZUtpbmQSIQoUc2V0YmFja19jZW50aWRlZ3JlZXMYAyABKBFIAIgBARItCglzdGFydHNfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB2VuZHNfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KBnNldF9ieRgGIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIyCgl3YXJtX2Zyb20YByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQFCFwoVX3NldGJhY2tfY2VudGlkZWdyZWVzQgwKCl93YXJtX2Zyb20ieQoPUm9vbUNsaW1hdGVMaXN0EjIKBXJvb21zGAEgAygLMiMua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tQ2xpbWF0ZRIyCgVtb2RlcxgCIAMoCzIjLmt1c2ludGEuaW90LmNsaW1hdGUudjEuQ2xpbWF0ZU1vZGUisQMKEVJvb21IaXN0b3J5U2FtcGxlEiYKAmF0GAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIiChVtZWFzdXJlZF9jZW50aWRlZ3JlZXMYAiABKBFIAIgBARIgChN0YXJnZXRfY2VudGlkZWdyZWVzGAMgASgRSAGIAQESKgodZWZmZWN0aXZlX3RhcmdldF9jZW50aWRlZ3JlZXMYBCABKBFIAogBARIgChN2YWx2ZV9vcGVuX3Blcm1pbGxlGAUgASgNSAOIAQESHwoSdmFsdmVfb3Blbl9zZWNvbmRzGAYgASgNSASIAQESIgoVZmxvb3JfaGVhdGluZ19zZWNvbmRzGAcgASgNSAWIAQFCGAoWX21lYXN1cmVkX2NlbnRpZGVncmVlc0IWChRfdGFyZ2V0X2NlbnRpZGVncmVlc0IgCh5fZWZmZWN0aXZlX3RhcmdldF9jZW50aWRlZ3JlZXNCFgoUX3ZhbHZlX29wZW5fcGVybWlsbGVCFQoTX3ZhbHZlX29wZW5fc2Vjb25kc0IYChZfZmxvb3JfaGVhdGluZ19zZWNvbmRzItACCgtSb29tSGlzdG9yeRIxCgdyb29tX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBItCglrZXB0X2Zyb20YAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKB3NhbXBsZXMYAyADKAsyKS5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21IaXN0b3J5U2FtcGxlEkEKCnJlc29sdXRpb24YBCABKA4yLS5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21IaXN0b3J5UmVzb2x1dGlvbhIwCgxjb3ZlcmVkX2Zyb20YBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNvdmVyZWRfdG8YBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wItQCChFDbGltYXRlUGVyaW9kTWVhbhItCglzdGFydHNfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB2VuZHNfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiIKFW1lYXN1cmVkX2NlbnRpZGVncmVlcxgDIAEoEUgAiAEBEiAKE3RhcmdldF9jZW50aWRlZ3JlZXMYBCABKBFIAYgBARIiChptZWFzdXJlZF9jb3ZlcmFnZV9wZXJtaWxsZRgFIAEoDRIgChh0YXJnZXRfY292ZXJhZ2VfcGVybWlsbGUYBiABKA0SFgoOcm9vbXNfbWVhc3VyZWQYByABKA0SDQoFcm9vbXMYCCABKA1CGAoWX21lYXN1cmVkX2NlbnRpZGVncmVlc0IWChRfdGFyZ2V0X2NlbnRpZGVncmVlcyK+AgoXQXBhcnRtZW50Q2xpbWF0ZVN1bW1hcnkSNgoMYXBhcnRtZW50X2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI8CgZwZXJpb2QYAiABKA4yLC5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVTdW1tYXJ5UGVyaW9kEkIKCXdlaWdodGluZxgDIAEoDjIvLmt1c2ludGEuaW90LmNsaW1hdGUudjEuQ2xpbWF0ZVN1bW1hcnlXZWlnaHRpbmcSLQoJa2VwdF9mcm9tGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI6CgdwZXJpb2RzGAUgAygLMikua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlUGVyaW9kTWVhbirVAgoUUm9vbUNsaW1hdGVDb25kaXRpb24SJgoiUk9PTV9DTElNQVRFX0NPTkRJVElPTl9VTlNQRUNJRklFRBAAEiIKHlJPT01fQ0xJTUFURV9DT05ESVRJT05fSE9MRElORxABEiQKIFJPT01fQ0xJTUFURV9DT05ESVRJT05fTk9fVEFSR0VUEAISJgoiUk9PTV9DTElNQVRFX0NPTkRJVElPTl9TRU5TT1JfTE9TVBADEiYKIlJPT01fQ0xJTUFURV9DT05ESVRJT05fV0lORE9XX09QRU4QBBIlCiFST09NX0NMSU1BVEVfQ09ORElUSU9OX05PX0hFQVRJTkcQBRIuCipST09NX0NMSU1BVEVfQ09ORElUSU9OX0hFQVRJTkdfVU5SRUFDSEFCTEUQBhIkCiBST09NX0NMSU1BVEVfQ09ORElUSU9OX05PX1NFTlNPUhAHKoUBCg5PdXRlckxpbWl0S2luZBIgChxPVVRFUl9MSU1JVF9LSU5EX1VOU1BFQ0lGSUVEEAASGAoUT1VURVJfTElNSVRfS0lORF9NSU4QARIYChRPVVRFUl9MSU1JVF9LSU5EX01BWBACEh0KGU9VVEVSX0xJTUlUX0tJTkRfQVdBWV9NSU4QAyqbAQoTT3V0ZXJMaW1pdHNDb3ZlcmFnZRIlCiFPVVRFUl9MSU1JVFNfQ09WRVJBR0VfVU5TUEVDSUZJRUQQABIeChpPVVRFUl9MSU1JVFNfQ09WRVJBR0VfTk9ORRABEh4KGk9VVEVSX0xJTUlUU19DT1ZFUkFHRV9TT01FEAISHQoZT1VURVJfTElNSVRTX0NPVkVSQUdFX0FMTBADKoYBCgxSb29tUGxhbm5pbmcSHQoZUk9PTV9QTEFOTklOR19VTlNQRUNJRklFRBAAEhkKFVJPT01fUExBTk5JTkdfUExBTk5FRBABEh0KGVJPT01fUExBTk5JTkdfTk9UX1BMQU5ORUQQAhIdChlST09NX1BMQU5OSU5HX1VOQVZBSUxBQkxFEAMqgAQKFkNsaW1hdGVFeHBsYW5hdGlvbktpbmQSKAokQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX1VOU1BFQ0lGSUVEEAASJQohQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX1BSRV9IRUFUEAESJQohQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX0NPQVNUSU5HEAISJwojQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX1BSSUNFX0hJR0gQAxInCiNDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfUEVBS19HVUFSRBAEEi8KK0NMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9IT1RfV0FURVJfUFJJT1JJVFkQBRIwCixDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfU0hBUkVEX1BPV0VSX0JVREdFVBAGEjIKLkNMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9ESVNUUklDVF9IRUFUSU5HX1BFQUsQBxIvCitDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfQVRfQ09NRk9SVF9DRUlMSU5HEAgSJwojQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX05PX1JFQURJTkcQCRIrCidDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfT1VUU0lERV9XSU5ET1cQCir3AQoZQ2xpbWF0ZUV4cGxhbmF0aW9uU3ViamVjdBIrCidDTElNQVRFX0VYUExBTkFUSU9OX1NVQkpFQ1RfVU5TUEVDSUZJRUQQABIkCiBDTElNQVRFX0VYUExBTkFUSU9OX1NVQkpFQ1RfUk9PTRABEioKJkNMSU1BVEVfRVhQTEFOQVRJT05fU1VCSkVDVF9GTE9PUl9aT05FEAISLAooQ0xJTUFURV9FWFBMQU5BVElPTl9TVUJKRUNUX0NPTUZPUlRfTE9BRBADEi0KKUNMSU1BVEVfRVhQTEFOQVRJT05fU1VCSkVDVF9BRERfT05fSEVBVEVSEAQqbwoPQ2xpbWF0ZU1vZGVLaW5kEiEKHUNMSU1BVEVfTU9ERV9LSU5EX1VOU1BFQ0lGSUVEEAASGgoWQ0xJTUFURV9NT0RFX0tJTkRfQVdBWRABEh0KGUNMSU1BVEVfTU9ERV9LSU5EX0hPTElEQVkQAiqMAQoVUm9vbUhpc3RvcnlSZXNvbHV0aW9uEicKI1JPT01fSElTVE9SWV9SRVNPTFVUSU9OX1VOU1BFQ0lGSUVEEAASKAokUk9PTV9ISVNUT1JZX1JFU09MVVRJT05fUVVBUlRFUl9IT1VSEAESIAocUk9PTV9ISVNUT1JZX1JFU09MVVRJT05fSE9VUhACKqEBChRDbGltYXRlU3VtbWFyeVBlcmlvZBImCiJDTElNQVRFX1NVTU1BUllfUEVSSU9EX1VOU1BFQ0lGSUVEEAASHgoaQ0xJTUFURV9TVU1NQVJZX1BFUklPRF9EQVkQARIfChtDTElNQVRFX1NVTU1BUllfUEVSSU9EX1dFRUsQAhIgChxDTElNQVRFX1NVTU1BUllfUEVSSU9EX01PTlRIEAMqbwoXQ2xpbWF0ZVN1bW1hcnlXZWlnaHRpbmcSKQolQ0xJTUFURV9TVU1NQVJZX1dFSUdIVElOR19VTlNQRUNJRklFRBAAEikKJUNMSU1BVEVfU1VNTUFSWV9XRUlHSFRJTkdfUk9PTVNfRVFVQUwQAUICSAFiBnByb3RvMw", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_roles, file_kusinta_iot_identity_v1_identity]);
14
15
 
15
16
  /**
16
17
  * Describes the message kusinta.iot.climate.v1.TargetChange.
@@ -26,54 +27,82 @@ export const TargetChangeSchema = /*@__PURE__*/
26
27
  export const RoomClimateSchema = /*@__PURE__*/
27
28
  messageDesc(file_kusinta_iot_climate_v1_climate, 1);
28
29
 
30
+ /**
31
+ * Describes the message kusinta.iot.climate.v1.OuterLimit.
32
+ * Use `create(OuterLimitSchema)` to create a new message.
33
+ */
34
+ export const OuterLimitSchema = /*@__PURE__*/
35
+ messageDesc(file_kusinta_iot_climate_v1_climate, 2);
36
+
37
+ /**
38
+ * Describes the message kusinta.iot.climate.v1.OuterRoomLimits.
39
+ * Use `create(OuterRoomLimitsSchema)` to create a new message.
40
+ */
41
+ export const OuterRoomLimitsSchema = /*@__PURE__*/
42
+ messageDesc(file_kusinta_iot_climate_v1_climate, 3);
43
+
44
+ /**
45
+ * Describes the message kusinta.iot.climate.v1.InnerRoomLimits.
46
+ * Use `create(InnerRoomLimitsSchema)` to create a new message.
47
+ */
48
+ export const InnerRoomLimitsSchema = /*@__PURE__*/
49
+ messageDesc(file_kusinta_iot_climate_v1_climate, 4);
50
+
51
+ /**
52
+ * Describes the message kusinta.iot.climate.v1.OuterLimitClamp.
53
+ * Use `create(OuterLimitClampSchema)` to create a new message.
54
+ */
55
+ export const OuterLimitClampSchema = /*@__PURE__*/
56
+ messageDesc(file_kusinta_iot_climate_v1_climate, 5);
57
+
29
58
  /**
30
59
  * Describes the message kusinta.iot.climate.v1.ClimateExplanation.
31
60
  * Use `create(ClimateExplanationSchema)` to create a new message.
32
61
  */
33
62
  export const ClimateExplanationSchema = /*@__PURE__*/
34
- messageDesc(file_kusinta_iot_climate_v1_climate, 2);
63
+ messageDesc(file_kusinta_iot_climate_v1_climate, 6);
35
64
 
36
65
  /**
37
66
  * Describes the message kusinta.iot.climate.v1.ClimateMode.
38
67
  * Use `create(ClimateModeSchema)` to create a new message.
39
68
  */
40
69
  export const ClimateModeSchema = /*@__PURE__*/
41
- messageDesc(file_kusinta_iot_climate_v1_climate, 3);
70
+ messageDesc(file_kusinta_iot_climate_v1_climate, 7);
42
71
 
43
72
  /**
44
73
  * Describes the message kusinta.iot.climate.v1.RoomClimateList.
45
74
  * Use `create(RoomClimateListSchema)` to create a new message.
46
75
  */
47
76
  export const RoomClimateListSchema = /*@__PURE__*/
48
- messageDesc(file_kusinta_iot_climate_v1_climate, 4);
77
+ messageDesc(file_kusinta_iot_climate_v1_climate, 8);
49
78
 
50
79
  /**
51
80
  * Describes the message kusinta.iot.climate.v1.RoomHistorySample.
52
81
  * Use `create(RoomHistorySampleSchema)` to create a new message.
53
82
  */
54
83
  export const RoomHistorySampleSchema = /*@__PURE__*/
55
- messageDesc(file_kusinta_iot_climate_v1_climate, 5);
84
+ messageDesc(file_kusinta_iot_climate_v1_climate, 9);
56
85
 
57
86
  /**
58
87
  * Describes the message kusinta.iot.climate.v1.RoomHistory.
59
88
  * Use `create(RoomHistorySchema)` to create a new message.
60
89
  */
61
90
  export const RoomHistorySchema = /*@__PURE__*/
62
- messageDesc(file_kusinta_iot_climate_v1_climate, 6);
91
+ messageDesc(file_kusinta_iot_climate_v1_climate, 10);
63
92
 
64
93
  /**
65
94
  * Describes the message kusinta.iot.climate.v1.ClimatePeriodMean.
66
95
  * Use `create(ClimatePeriodMeanSchema)` to create a new message.
67
96
  */
68
97
  export const ClimatePeriodMeanSchema = /*@__PURE__*/
69
- messageDesc(file_kusinta_iot_climate_v1_climate, 7);
98
+ messageDesc(file_kusinta_iot_climate_v1_climate, 11);
70
99
 
71
100
  /**
72
101
  * Describes the message kusinta.iot.climate.v1.ApartmentClimateSummary.
73
102
  * Use `create(ApartmentClimateSummarySchema)` to create a new message.
74
103
  */
75
104
  export const ApartmentClimateSummarySchema = /*@__PURE__*/
76
- messageDesc(file_kusinta_iot_climate_v1_climate, 8);
105
+ messageDesc(file_kusinta_iot_climate_v1_climate, 12);
77
106
 
78
107
  /**
79
108
  * Describes the enum kusinta.iot.climate.v1.RoomClimateCondition.
@@ -94,11 +123,39 @@ export const RoomClimateConditionSchema = /*@__PURE__*/
94
123
  export const RoomClimateCondition = /*@__PURE__*/
95
124
  tsEnum(RoomClimateConditionSchema);
96
125
 
126
+ /**
127
+ * Describes the enum kusinta.iot.climate.v1.OuterLimitKind.
128
+ */
129
+ export const OuterLimitKindSchema = /*@__PURE__*/
130
+ enumDesc(file_kusinta_iot_climate_v1_climate, 1);
131
+
132
+ /**
133
+ * Which bound of a room's outer limits clamps the outputs it binds.
134
+ *
135
+ * @generated from enum kusinta.iot.climate.v1.OuterLimitKind
136
+ */
137
+ export const OuterLimitKind = /*@__PURE__*/
138
+ tsEnum(OuterLimitKindSchema);
139
+
140
+ /**
141
+ * Describes the enum kusinta.iot.climate.v1.OuterLimitsCoverage.
142
+ */
143
+ export const OuterLimitsCoverageSchema = /*@__PURE__*/
144
+ enumDesc(file_kusinta_iot_climate_v1_climate, 2);
145
+
146
+ /**
147
+ * How many of a room's heating outputs its outer limits bind (OuterRoomLimits, WHAT THEY BIND).
148
+ *
149
+ * @generated from enum kusinta.iot.climate.v1.OuterLimitsCoverage
150
+ */
151
+ export const OuterLimitsCoverage = /*@__PURE__*/
152
+ tsEnum(OuterLimitsCoverageSchema);
153
+
97
154
  /**
98
155
  * Describes the enum kusinta.iot.climate.v1.RoomPlanning.
99
156
  */
100
157
  export const RoomPlanningSchema = /*@__PURE__*/
101
- enumDesc(file_kusinta_iot_climate_v1_climate, 1);
158
+ enumDesc(file_kusinta_iot_climate_v1_climate, 3);
102
159
 
103
160
  /**
104
161
  * Whether a plan steers a room: one that looks ahead at prices, weather and the heat
@@ -114,7 +171,7 @@ export const RoomPlanning = /*@__PURE__*/
114
171
  * Describes the enum kusinta.iot.climate.v1.ClimateExplanationKind.
115
172
  */
116
173
  export const ClimateExplanationKindSchema = /*@__PURE__*/
117
- enumDesc(file_kusinta_iot_climate_v1_climate, 2);
174
+ enumDesc(file_kusinta_iot_climate_v1_climate, 4);
118
175
 
119
176
  /**
120
177
  * What held a room, or a part of its heating, where it is. A closed list of causes: the
@@ -141,7 +198,7 @@ export const ClimateExplanationKind = /*@__PURE__*/
141
198
  * Describes the enum kusinta.iot.climate.v1.ClimateExplanationSubject.
142
199
  */
143
200
  export const ClimateExplanationSubjectSchema = /*@__PURE__*/
144
- enumDesc(file_kusinta_iot_climate_v1_climate, 3);
201
+ enumDesc(file_kusinta_iot_climate_v1_climate, 5);
145
202
 
146
203
  /**
147
204
  * What a cause acts on.
@@ -155,7 +212,7 @@ export const ClimateExplanationSubject = /*@__PURE__*/
155
212
  * Describes the enum kusinta.iot.climate.v1.ClimateModeKind.
156
213
  */
157
214
  export const ClimateModeKindSchema = /*@__PURE__*/
158
- enumDesc(file_kusinta_iot_climate_v1_climate, 4);
215
+ enumDesc(file_kusinta_iot_climate_v1_climate, 6);
159
216
 
160
217
  /**
161
218
  * A setback that applies to every room in a space while it is on.
@@ -169,7 +226,7 @@ export const ClimateModeKind = /*@__PURE__*/
169
226
  * Describes the enum kusinta.iot.climate.v1.RoomHistoryResolution.
170
227
  */
171
228
  export const RoomHistoryResolutionSchema = /*@__PURE__*/
172
- enumDesc(file_kusinta_iot_climate_v1_climate, 5);
229
+ enumDesc(file_kusinta_iot_climate_v1_climate, 7);
173
230
 
174
231
  /**
175
232
  * The length of the buckets a room's history is given in. Buckets are fixed and aligned to
@@ -184,7 +241,7 @@ export const RoomHistoryResolution = /*@__PURE__*/
184
241
  * Describes the enum kusinta.iot.climate.v1.ClimateSummaryPeriod.
185
242
  */
186
243
  export const ClimateSummaryPeriodSchema = /*@__PURE__*/
187
- enumDesc(file_kusinta_iot_climate_v1_climate, 6);
244
+ enumDesc(file_kusinta_iot_climate_v1_climate, 8);
188
245
 
189
246
  /**
190
247
  * The length of the periods an ApartmentClimateSummary is given in. Each period runs from
@@ -209,7 +266,7 @@ export const ClimateSummaryPeriod = /*@__PURE__*/
209
266
  * Describes the enum kusinta.iot.climate.v1.ClimateSummaryWeighting.
210
267
  */
211
268
  export const ClimateSummaryWeightingSchema = /*@__PURE__*/
212
- enumDesc(file_kusinta_iot_climate_v1_climate, 7);
269
+ enumDesc(file_kusinta_iot_climate_v1_climate, 9);
213
270
 
214
271
  /**
215
272
  * How an apartment's mean is formed from its rooms' means.
@@ -694,8 +694,9 @@ export declare type CommissioningGrant = Message<"kusinta.iot.commissioning.v1.C
694
694
 
695
695
  /**
696
696
  * Who granted it, and when. GRANTED only. granted_by is given to the home's residents, and
697
- * for a space outside homes to the property owner and the gateway's administrators; to the
698
- * installer it is unset, since a resident's user id would tell them who lives in the home.
697
+ * for a space outside homes or an empty home to the property owner and the gateway's
698
+ * administrators; to the installer it is unset, since a resident's user id would tell them
699
+ * who lives in the home.
699
700
  *
700
701
  * @generated from field: kusinta.iot.identity.v1.UserId granted_by = 10;
701
702
  */
@@ -717,9 +718,13 @@ export declare const CommissioningGrantSchema: GenMessage<CommissioningGrant>;
717
718
  * The grants on one space that have not ended, as listed to one caller: the answer to
718
719
  * webrtc.v1.ListCommissioningGrants, and pushed whole as webrtc.v1.GatewayMessage
719
720
  * .commissioning_grants to every session that may list them whenever one is requested,
720
- * answered or ended before its time — to the installer, their own grants alone. Nothing is
721
- * pushed when a grant starts, ends or lapses at the time it states: a client reads those from
722
- * starts_at, ends_at and expires_at.
721
+ * answered or ended before its time — to the installer, their own grants alone. When who may
722
+ * list a home's grants changes — the home gaining a resident (webrtc.v1 household.proto,
723
+ * MOVE-IN), its last residency ending — they are pushed whole to the sessions that could list
724
+ * them before as well: empty, to one that may list none now, so that no session keeps showing a
725
+ * grant it no longer has or a request it can no longer answer. Nothing is pushed when a grant
726
+ * starts, ends or lapses at the time it states: a client reads those from starts_at, ends_at
727
+ * and expires_at.
723
728
  *
724
729
  * @generated from message kusinta.iot.commissioning.v1.CommissioningGrants
725
730
  */
@@ -1140,6 +1145,17 @@ export enum BlockReason {
1140
1145
  * @generated from enum value: BLOCK_REASON_LEASE_TOO_LONG = 6;
1141
1146
  */
1142
1147
  LEASE_TOO_LONG = 6,
1148
+
1149
+ /**
1150
+ * The device lies on the other side of a home's boundary from the record that binds or reads
1151
+ * it: a binding stored before such crossings were refused or undone (heating.v1). Mostly
1152
+ * transitional: a gateway removes such a binding once at start-up, before it first reads its
1153
+ * records (webrtc.v1 management.proto, START-UP), so this is sent only by one that holds such
1154
+ * a binding yet. Its output is held at rest and nothing reads it for the record meanwhile.
1155
+ *
1156
+ * @generated from enum value: BLOCK_REASON_DEVICE_ACROSS_HOME = 7;
1157
+ */
1158
+ DEVICE_ACROSS_HOME = 7,
1143
1159
  }
1144
1160
 
1145
1161
  /**
@@ -11,7 +11,7 @@ import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identit
11
11
  * Describes the file kusinta/iot/commissioning/v1/commissioning.proto.
12
12
  */
13
13
  export const file_kusinta_iot_commissioning_v1_commissioning = /*@__PURE__*/
14
- fileDesc("CjBrdXNpbnRhL2lvdC9jb21taXNzaW9uaW5nL3YxL2NvbW1pc3Npb25pbmcucHJvdG8SHGt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEizwEKClByb3ZlbmFuY2USMgoFcGFydHkYASABKA4yIy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlBhcnR5EjgKCGV2aWRlbmNlGAIgASgOMiYua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5FdmlkZW5jZRImCgJhdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKwoCYnkYBCABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQiLgoKQmluZGluZ1JlZhIRCglyZWNvcmRfaWQYASABKAkSDQoFZmllbGQYAiABKAkiMwoLVGVtcGxhdGVSZWYSEwoLdGVtcGxhdGVfaWQYASABKAkSDwoHdmVyc2lvbhgCIAEoDSL0BAoRQ29tbWlzc2lvbmluZ0ZhY3QSDwoHZmFjdF9pZBgBIAEoCRIyCghzcGFjZV9pZBgCIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSEQoJcmVjb3JkX2lkGAMgASgJEgsKA2tleRgEIAEoCRI2CgV2YWx1ZRgFIAEoCzIlLmt1c2ludGEuaW90LmRldmljZS52MS5BdHRyaWJ1dGVWYWx1ZUgAEhEKB3Vua25vd24YBiABKAhIABI1CghhbnN3ZXJlchgHIAEoDjIjLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuUGFydHkSOgoJbmVjZXNzaXR5GAggASgOMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5OZWNlc3NpdHkSNgoHZmVhdHVyZRgJIAEoDjIlLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZRI8Cgpwcm92ZW5hbmNlGAogASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Qcm92ZW5hbmNlEhAKCHJldmlzaW9uGA0gASgEEkAKDWRldmlhdGVzX2Zyb20YDyABKAsyKS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlbXBsYXRlUmVmEjYKBXRvcGljGBAgASgOMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5GYWN0VG9waWNCCAoGYW5zd2VySgQICxANSgQIDhAPUgVzY29wZVIQdGVtcGxhdGVfdmVyc2lvblILdGVtcGxhdGVfaWQiegoMVGVtcGxhdGVGYWN0EgsKA2tleRgBIAEoCRIVCg1zdWJqZWN0X2xhYmVsGAIgASgJEjQKBXZhbHVlGAMgASgLMiUua3VzaW50YS5pb3QuZGV2aWNlLnYxLkF0dHJpYnV0ZVZhbHVlSgQIBBAFUgpwcm92ZW5hbmNlIvMBCg1Ib3VzZVRlbXBsYXRlEhMKC3RlbXBsYXRlX2lkGAEgASgJEjUKC2J1aWxkaW5nX2lkGAIgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIMCgRuYW1lGAMgASgJEg8KB3ZlcnNpb24YBCABKA0SOQoFZmFjdHMYBSADKAsyKi5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlbXBsYXRlRmFjdBI8Cgpwcm92ZW5hbmNlGAYgASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Qcm92ZW5hbmNlItsCCgROZWVkEhIKCGZhY3Rfa2V5GAEgASgJSAASNgoEdGVzdBgCIAEoDjImLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuVGVzdEtpbmRIABIyCghzcGFjZV9pZBgDIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNQoIYW5zd2VyZXIYBSABKA4yIy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlBhcnR5EjkKB2JpbmRpbmcYByABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWYSOwoKZmFjdF90b3BpYxgIIAEoDjInLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmFjdFRvcGljQgYKBHdoYXRKBAgEEAVKBAgGEAdSCXJlY29yZF9pZFIFZmllbGQi2AEKDEZlYXR1cmVCbG9jaxI5CgZyZWFzb24YASABKA4yKS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJsb2NrUmVhc29uEjQKCWRldmljZV9pZBgDIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjkKB2JpbmRpbmcYBSABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWZKBAgCEANKBAgEEAVSCXJlY29yZF9pZFIFZmllbGQi8QEKDUZlYXR1cmVTdGF0dXMSNgoHZmVhdHVyZRgBIAEoDjIlLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZRI5CgVzdGF0ZRgCIAEoDjIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZVN0YXRlEjEKBW5lZWRzGAMgAygLMiIua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5OZWVkEjoKBmJsb2NrcxgEIAMoCzIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZUJsb2NrIrcEChFDb21taXNzaW9uaW5nVGVzdBIPCgd0ZXN0X2lkGAEgASgJEjQKBGtpbmQYAiABKA4yJi5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlc3RLaW5kEjkKB2JpbmRpbmcYDSABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWYSNAoJZGV2aWNlX2lkGAUgASgLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSNgoFc3RhdGUYBiABKA4yJy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlc3RTdGF0ZRI6CgdmYWlsdXJlGAcgASgOMikua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5UZXN0RmFpbHVyZRIuCgpzdGFydGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgdlbmRzX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtmaW5pc2hlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPAoKcHJvdmVuYW5jZRgLIAEoCzIoLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuUHJvdmVuYW5jZRISCgpzdXBlcnNlZGVkGAwgASgISgQIAxAFUglyZWNvcmRfaWRSBWZpZWxkIvMCChRDb21taXNzaW9uaW5nUHJvZmlsZRIyCghzcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSPgoFZmFjdHMYAiADKAsyLy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdGYWN0Ej4KBXRlc3RzGAMgAygLMi8ua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Db21taXNzaW9uaW5nVGVzdBI9CghmZWF0dXJlcxgEIAMoCzIrLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZVN0YXR1cxI9Cgh0ZW1wbGF0ZRgGIAEoCzIrLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuSG91c2VUZW1wbGF0ZRIWCg5uZWVkc193aXRoaGVsZBgHIAEoCEoECAUQBlILdGVtcGxhdGVfaWQiTgoJSG9tZVNldHVwEjEKB2hvbWVfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEg4KBnNldF91cBgCIAEoCCJECgpIb21lU2V0dXBzEjYKBWhvbWVzGAEgAygLMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Ib21lU2V0dXAi4gEKE0NvbW1pc3Npb25pbmdSZWNvcmQSPwoEZmFjdBgBIAEoCzIvLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0ZhY3RIABI/CgR0ZXN0GAIgASgLMi8ua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Db21taXNzaW9uaW5nVGVzdEgAEj8KCHRlbXBsYXRlGAMgASgLMisua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Ib3VzZVRlbXBsYXRlSABCCAoGcmVjb3JkIo8EChJDb21taXNzaW9uaW5nR3JhbnQSEAoIZ3JhbnRfaWQYASABKAkSMgoIc3BhY2VfaWQYAiABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEjIKCWluc3RhbGxlchgDIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIWCg5pbnN0YWxsZXJfbmFtZRgEIAEoCRJECgVzdGF0ZRgFIAEoDjI1Lmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0dyYW50U3RhdGUSMAoMcmVxdWVzdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpleHBpcmVzX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBItCglzdGFydHNfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB2VuZHNfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCmdyYW50ZWRfYnkYCiABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSLgoKZ3JhbnRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiiwEKE0NvbW1pc3Npb25pbmdHcmFudHMSMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEkAKBmdyYW50cxgCIAMoCzIwLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0dyYW50Ir8BChhDb21taXNzaW9uaW5nR3JhbnRSZWNvcmQSFgoOaW5zdGFsbGVyX25hbWUYASABKAkSLgoKZ3JhbnRlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJc3RhcnRzX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghlbmRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAqewoFUGFydHkSFQoRUEFSVFlfVU5TUEVDSUZJRUQQABIcChhQQVJUWV9PV05FUl9PUkdBTklTQVRJT04QARITCg9QQVJUWV9IT1VTRUhPTEQQAhITCg9QQVJUWV9JTlNUQUxMRVIQAxITCg9QQVJUWV9BVVRPTUFUSUMQBCpxCglOZWNlc3NpdHkSGQoVTkVDRVNTSVRZX1VOU1BFQ0lGSUVEEAASFgoSTkVDRVNTSVRZX1JFUVVJUkVEEAESGQoVTkVDRVNTSVRZX0ZPUl9GRUFUVVJFEAISFgoSTkVDRVNTSVRZX09QVElPTkFMEAMqqAEKCEV2aWRlbmNlEhgKFEVWSURFTkNFX1VOU1BFQ0lGSUVEEAASEwoPRVZJREVOQ0VfU1RBVEVEEAESEgoORVZJREVOQ0VfUEhPVE8QAhIUChBFVklERU5DRV9EUkFXSU5HEAMSFgoSRVZJREVOQ0VfSU5TUEVDVEVEEAQSFQoRRVZJREVOQ0VfTUVBU1VSRUQQBRIUChBFVklERU5DRV9ERVJJVkVEEAYqoAIKCUZhY3RUb3BpYxIaChZGQUNUX1RPUElDX1VOU1BFQ0lGSUVEEAASFwoTRkFDVF9UT1BJQ19CVUlMRElORxABEhQKEEZBQ1RfVE9QSUNfUk9PTVMQAhIaChZGQUNUX1RPUElDX0hFQVRfU09VUkNFEAMSHAoYRkFDVF9UT1BJQ19GTE9PUl9IRUFUSU5HEAQSHAoYRkFDVF9UT1BJQ19DT01GT1JUX0xPQURTEAUSGgoWRkFDVF9UT1BJQ19FTEVDVFJJQ0lUWRAGEh8KG0ZBQ1RfVE9QSUNfRElTVFJJQ1RfSEVBVElORxAHEhsKF0ZBQ1RfVE9QSUNfQ09OTkVDVElWSVRZEAgSFgoSRkFDVF9UT1BJQ19DT01GT1JUEAkqqQEKB0ZlYXR1cmUSFwoTRkVBVFVSRV9VTlNQRUNJRklFRBAAEhcKE0ZFQVRVUkVfRkxPT1JfWk9ORVMQARIRCg1GRUFUVVJFX1BMQU5UEAISGQoVRkVBVFVSRV9DT01GT1JUX0xPQURTEAMSEAoMRkVBVFVSRV9DT1NUEAQSFgoSRkVBVFVSRV9QRUFLX0dVQVJEEAUSFAoQRkVBVFVSRV9QTEFOTklORxAGKoUBCgxGZWF0dXJlU3RhdGUSHQoZRkVBVFVSRV9TVEFURV9VTlNQRUNJRklFRBAAEhcKE0ZFQVRVUkVfU1RBVEVfV09SS1MQARIXChNGRUFUVVJFX1NUQVRFX05FRURTEAISJAogRkVBVFVSRV9TVEFURV9CTE9DS0VEX0ZPUl9TQUZFVFkQAyr3AQoLQmxvY2tSZWFzb24SHAoYQkxPQ0tfUkVBU09OX1VOU1BFQ0lGSUVEEAASHAoYQkxPQ0tfUkVBU09OX1RFU1RfRkFJTEVEEAESIgoeQkxPQ0tfUkVBU09OX09VVFBVVF9OT1RfTEVBU0VEEAISJQohQkxPQ0tfUkVBU09OX1BPV0VSX09OX05PVF9BVF9SRVNUEAMSHAoYQkxPQ0tfUkVBU09OX0RFVklDRV9HT05FEAQSIgoeQkxPQ0tfUkVBU09OX0NPTlRST0xfUk9PTV9HT05FEAUSHwobQkxPQ0tfUkVBU09OX0xFQVNFX1RPT19MT05HEAYqfgoIVGVzdEtpbmQSGQoVVEVTVF9LSU5EX1VOU1BFQ0lGSUVEEAASGgoWVEVTVF9LSU5EX09VVFBVVF9MRUFTRRABEhkKFVRFU1RfS0lORF9aT05FX0VGRkVDVBACEiAKHFRFU1RfS0lORF9QVU1QX0FMTF9aT05FU19PRkYQAyqFAQoJVGVzdFN0YXRlEhoKFlRFU1RfU1RBVEVfVU5TUEVDSUZJRUQQABIWChJURVNUX1NUQVRFX1JVTk5JTkcQARIVChFURVNUX1NUQVRFX1BBU1NFRBACEhUKEVRFU1RfU1RBVEVfRkFJTEVEEAMSFgoSVEVTVF9TVEFURV9BQk9SVEVEEAQqnQIKC1Rlc3RGYWlsdXJlEhwKGFRFU1RfRkFJTFVSRV9VTlNQRUNJRklFRBAAEiUKIVRFU1RfRkFJTFVSRV9QT1dFUl9PTl9OT1RfQVRfUkVTVBABEiAKHFRFU1RfRkFJTFVSRV9OT19TVEFURV9DSEFOR0UQAhIiCh5URVNUX0ZBSUxVUkVfTEVBU0VfTk9UX1JFTkVXRUQQAxInCiNURVNUX0ZBSUxVUkVfRElEX05PVF9SRVRVUk5fVE9fUkVTVBAEEiMKH1RFU1RfRkFJTFVSRV9ERVZJQ0VfVU5SRUFDSEFCTEUQBRIaChZURVNUX0ZBSUxVUkVfTk9fRUZGRUNUEAYSGQoVVEVTVF9GQUlMVVJFX09CU0VSVkVEEAcqlAEKF0NvbW1pc3Npb25pbmdHcmFudFN0YXRlEikKJUNPTU1JU1NJT05JTkdfR1JBTlRfU1RBVEVfVU5TUEVDSUZJRUQQABInCiNDT01NSVNTSU9OSU5HX0dSQU5UX1NUQVRFX1JFUVVFU1RFRBABEiUKIUNPTU1JU1NJT05JTkdfR1JBTlRfU1RBVEVfR1JBTlRFRBACQgJIAWIGcHJvdG8z", [file_google_protobuf_timestamp, file_kusinta_iot_device_v1_cluster_state, file_kusinta_iot_identity_v1_identity]);
14
+ fileDesc("CjBrdXNpbnRhL2lvdC9jb21taXNzaW9uaW5nL3YxL2NvbW1pc3Npb25pbmcucHJvdG8SHGt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEizwEKClByb3ZlbmFuY2USMgoFcGFydHkYASABKA4yIy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlBhcnR5EjgKCGV2aWRlbmNlGAIgASgOMiYua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5FdmlkZW5jZRImCgJhdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKwoCYnkYBCABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQiLgoKQmluZGluZ1JlZhIRCglyZWNvcmRfaWQYASABKAkSDQoFZmllbGQYAiABKAkiMwoLVGVtcGxhdGVSZWYSEwoLdGVtcGxhdGVfaWQYASABKAkSDwoHdmVyc2lvbhgCIAEoDSL0BAoRQ29tbWlzc2lvbmluZ0ZhY3QSDwoHZmFjdF9pZBgBIAEoCRIyCghzcGFjZV9pZBgCIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSEQoJcmVjb3JkX2lkGAMgASgJEgsKA2tleRgEIAEoCRI2CgV2YWx1ZRgFIAEoCzIlLmt1c2ludGEuaW90LmRldmljZS52MS5BdHRyaWJ1dGVWYWx1ZUgAEhEKB3Vua25vd24YBiABKAhIABI1CghhbnN3ZXJlchgHIAEoDjIjLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuUGFydHkSOgoJbmVjZXNzaXR5GAggASgOMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5OZWNlc3NpdHkSNgoHZmVhdHVyZRgJIAEoDjIlLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZRI8Cgpwcm92ZW5hbmNlGAogASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Qcm92ZW5hbmNlEhAKCHJldmlzaW9uGA0gASgEEkAKDWRldmlhdGVzX2Zyb20YDyABKAsyKS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlbXBsYXRlUmVmEjYKBXRvcGljGBAgASgOMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5GYWN0VG9waWNCCAoGYW5zd2VySgQICxANSgQIDhAPUgVzY29wZVIQdGVtcGxhdGVfdmVyc2lvblILdGVtcGxhdGVfaWQiegoMVGVtcGxhdGVGYWN0EgsKA2tleRgBIAEoCRIVCg1zdWJqZWN0X2xhYmVsGAIgASgJEjQKBXZhbHVlGAMgASgLMiUua3VzaW50YS5pb3QuZGV2aWNlLnYxLkF0dHJpYnV0ZVZhbHVlSgQIBBAFUgpwcm92ZW5hbmNlIvMBCg1Ib3VzZVRlbXBsYXRlEhMKC3RlbXBsYXRlX2lkGAEgASgJEjUKC2J1aWxkaW5nX2lkGAIgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIMCgRuYW1lGAMgASgJEg8KB3ZlcnNpb24YBCABKA0SOQoFZmFjdHMYBSADKAsyKi5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlbXBsYXRlRmFjdBI8Cgpwcm92ZW5hbmNlGAYgASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Qcm92ZW5hbmNlItsCCgROZWVkEhIKCGZhY3Rfa2V5GAEgASgJSAASNgoEdGVzdBgCIAEoDjImLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuVGVzdEtpbmRIABIyCghzcGFjZV9pZBgDIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNQoIYW5zd2VyZXIYBSABKA4yIy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlBhcnR5EjkKB2JpbmRpbmcYByABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWYSOwoKZmFjdF90b3BpYxgIIAEoDjInLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmFjdFRvcGljQgYKBHdoYXRKBAgEEAVKBAgGEAdSCXJlY29yZF9pZFIFZmllbGQi2AEKDEZlYXR1cmVCbG9jaxI5CgZyZWFzb24YASABKA4yKS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJsb2NrUmVhc29uEjQKCWRldmljZV9pZBgDIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjkKB2JpbmRpbmcYBSABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWZKBAgCEANKBAgEEAVSCXJlY29yZF9pZFIFZmllbGQi8QEKDUZlYXR1cmVTdGF0dXMSNgoHZmVhdHVyZRgBIAEoDjIlLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZRI5CgVzdGF0ZRgCIAEoDjIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZVN0YXRlEjEKBW5lZWRzGAMgAygLMiIua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5OZWVkEjoKBmJsb2NrcxgEIAMoCzIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZUJsb2NrIrcEChFDb21taXNzaW9uaW5nVGVzdBIPCgd0ZXN0X2lkGAEgASgJEjQKBGtpbmQYAiABKA4yJi5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlc3RLaW5kEjkKB2JpbmRpbmcYDSABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWYSNAoJZGV2aWNlX2lkGAUgASgLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSNgoFc3RhdGUYBiABKA4yJy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlc3RTdGF0ZRI6CgdmYWlsdXJlGAcgASgOMikua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5UZXN0RmFpbHVyZRIuCgpzdGFydGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgdlbmRzX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtmaW5pc2hlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPAoKcHJvdmVuYW5jZRgLIAEoCzIoLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuUHJvdmVuYW5jZRISCgpzdXBlcnNlZGVkGAwgASgISgQIAxAFUglyZWNvcmRfaWRSBWZpZWxkIvMCChRDb21taXNzaW9uaW5nUHJvZmlsZRIyCghzcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSPgoFZmFjdHMYAiADKAsyLy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdGYWN0Ej4KBXRlc3RzGAMgAygLMi8ua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Db21taXNzaW9uaW5nVGVzdBI9CghmZWF0dXJlcxgEIAMoCzIrLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZVN0YXR1cxI9Cgh0ZW1wbGF0ZRgGIAEoCzIrLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuSG91c2VUZW1wbGF0ZRIWCg5uZWVkc193aXRoaGVsZBgHIAEoCEoECAUQBlILdGVtcGxhdGVfaWQiTgoJSG9tZVNldHVwEjEKB2hvbWVfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEg4KBnNldF91cBgCIAEoCCJECgpIb21lU2V0dXBzEjYKBWhvbWVzGAEgAygLMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Ib21lU2V0dXAi4gEKE0NvbW1pc3Npb25pbmdSZWNvcmQSPwoEZmFjdBgBIAEoCzIvLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0ZhY3RIABI/CgR0ZXN0GAIgASgLMi8ua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Db21taXNzaW9uaW5nVGVzdEgAEj8KCHRlbXBsYXRlGAMgASgLMisua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Ib3VzZVRlbXBsYXRlSABCCAoGcmVjb3JkIo8EChJDb21taXNzaW9uaW5nR3JhbnQSEAoIZ3JhbnRfaWQYASABKAkSMgoIc3BhY2VfaWQYAiABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEjIKCWluc3RhbGxlchgDIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIWCg5pbnN0YWxsZXJfbmFtZRgEIAEoCRJECgVzdGF0ZRgFIAEoDjI1Lmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0dyYW50U3RhdGUSMAoMcmVxdWVzdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpleHBpcmVzX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBItCglzdGFydHNfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB2VuZHNfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCmdyYW50ZWRfYnkYCiABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSLgoKZ3JhbnRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiiwEKE0NvbW1pc3Npb25pbmdHcmFudHMSMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEkAKBmdyYW50cxgCIAMoCzIwLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0dyYW50Ir8BChhDb21taXNzaW9uaW5nR3JhbnRSZWNvcmQSFgoOaW5zdGFsbGVyX25hbWUYASABKAkSLgoKZ3JhbnRlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJc3RhcnRzX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghlbmRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAqewoFUGFydHkSFQoRUEFSVFlfVU5TUEVDSUZJRUQQABIcChhQQVJUWV9PV05FUl9PUkdBTklTQVRJT04QARITCg9QQVJUWV9IT1VTRUhPTEQQAhITCg9QQVJUWV9JTlNUQUxMRVIQAxITCg9QQVJUWV9BVVRPTUFUSUMQBCpxCglOZWNlc3NpdHkSGQoVTkVDRVNTSVRZX1VOU1BFQ0lGSUVEEAASFgoSTkVDRVNTSVRZX1JFUVVJUkVEEAESGQoVTkVDRVNTSVRZX0ZPUl9GRUFUVVJFEAISFgoSTkVDRVNTSVRZX09QVElPTkFMEAMqqAEKCEV2aWRlbmNlEhgKFEVWSURFTkNFX1VOU1BFQ0lGSUVEEAASEwoPRVZJREVOQ0VfU1RBVEVEEAESEgoORVZJREVOQ0VfUEhPVE8QAhIUChBFVklERU5DRV9EUkFXSU5HEAMSFgoSRVZJREVOQ0VfSU5TUEVDVEVEEAQSFQoRRVZJREVOQ0VfTUVBU1VSRUQQBRIUChBFVklERU5DRV9ERVJJVkVEEAYqoAIKCUZhY3RUb3BpYxIaChZGQUNUX1RPUElDX1VOU1BFQ0lGSUVEEAASFwoTRkFDVF9UT1BJQ19CVUlMRElORxABEhQKEEZBQ1RfVE9QSUNfUk9PTVMQAhIaChZGQUNUX1RPUElDX0hFQVRfU09VUkNFEAMSHAoYRkFDVF9UT1BJQ19GTE9PUl9IRUFUSU5HEAQSHAoYRkFDVF9UT1BJQ19DT01GT1JUX0xPQURTEAUSGgoWRkFDVF9UT1BJQ19FTEVDVFJJQ0lUWRAGEh8KG0ZBQ1RfVE9QSUNfRElTVFJJQ1RfSEVBVElORxAHEhsKF0ZBQ1RfVE9QSUNfQ09OTkVDVElWSVRZEAgSFgoSRkFDVF9UT1BJQ19DT01GT1JUEAkqqQEKB0ZlYXR1cmUSFwoTRkVBVFVSRV9VTlNQRUNJRklFRBAAEhcKE0ZFQVRVUkVfRkxPT1JfWk9ORVMQARIRCg1GRUFUVVJFX1BMQU5UEAISGQoVRkVBVFVSRV9DT01GT1JUX0xPQURTEAMSEAoMRkVBVFVSRV9DT1NUEAQSFgoSRkVBVFVSRV9QRUFLX0dVQVJEEAUSFAoQRkVBVFVSRV9QTEFOTklORxAGKoUBCgxGZWF0dXJlU3RhdGUSHQoZRkVBVFVSRV9TVEFURV9VTlNQRUNJRklFRBAAEhcKE0ZFQVRVUkVfU1RBVEVfV09SS1MQARIXChNGRUFUVVJFX1NUQVRFX05FRURTEAISJAogRkVBVFVSRV9TVEFURV9CTE9DS0VEX0ZPUl9TQUZFVFkQAyqcAgoLQmxvY2tSZWFzb24SHAoYQkxPQ0tfUkVBU09OX1VOU1BFQ0lGSUVEEAASHAoYQkxPQ0tfUkVBU09OX1RFU1RfRkFJTEVEEAESIgoeQkxPQ0tfUkVBU09OX09VVFBVVF9OT1RfTEVBU0VEEAISJQohQkxPQ0tfUkVBU09OX1BPV0VSX09OX05PVF9BVF9SRVNUEAMSHAoYQkxPQ0tfUkVBU09OX0RFVklDRV9HT05FEAQSIgoeQkxPQ0tfUkVBU09OX0NPTlRST0xfUk9PTV9HT05FEAUSHwobQkxPQ0tfUkVBU09OX0xFQVNFX1RPT19MT05HEAYSIwofQkxPQ0tfUkVBU09OX0RFVklDRV9BQ1JPU1NfSE9NRRAHKn4KCFRlc3RLaW5kEhkKFVRFU1RfS0lORF9VTlNQRUNJRklFRBAAEhoKFlRFU1RfS0lORF9PVVRQVVRfTEVBU0UQARIZChVURVNUX0tJTkRfWk9ORV9FRkZFQ1QQAhIgChxURVNUX0tJTkRfUFVNUF9BTExfWk9ORVNfT0ZGEAMqhQEKCVRlc3RTdGF0ZRIaChZURVNUX1NUQVRFX1VOU1BFQ0lGSUVEEAASFgoSVEVTVF9TVEFURV9SVU5OSU5HEAESFQoRVEVTVF9TVEFURV9QQVNTRUQQAhIVChFURVNUX1NUQVRFX0ZBSUxFRBADEhYKElRFU1RfU1RBVEVfQUJPUlRFRBAEKp0CCgtUZXN0RmFpbHVyZRIcChhURVNUX0ZBSUxVUkVfVU5TUEVDSUZJRUQQABIlCiFURVNUX0ZBSUxVUkVfUE9XRVJfT05fTk9UX0FUX1JFU1QQARIgChxURVNUX0ZBSUxVUkVfTk9fU1RBVEVfQ0hBTkdFEAISIgoeVEVTVF9GQUlMVVJFX0xFQVNFX05PVF9SRU5FV0VEEAMSJwojVEVTVF9GQUlMVVJFX0RJRF9OT1RfUkVUVVJOX1RPX1JFU1QQBBIjCh9URVNUX0ZBSUxVUkVfREVWSUNFX1VOUkVBQ0hBQkxFEAUSGgoWVEVTVF9GQUlMVVJFX05PX0VGRkVDVBAGEhkKFVRFU1RfRkFJTFVSRV9PQlNFUlZFRBAHKpQBChdDb21taXNzaW9uaW5nR3JhbnRTdGF0ZRIpCiVDT01NSVNTSU9OSU5HX0dSQU5UX1NUQVRFX1VOU1BFQ0lGSUVEEAASJwojQ09NTUlTU0lPTklOR19HUkFOVF9TVEFURV9SRVFVRVNURUQQARIlCiFDT01NSVNTSU9OSU5HX0dSQU5UX1NUQVRFX0dSQU5URUQQAkICSAFiBnByb3RvMw", [file_google_protobuf_timestamp, file_kusinta_iot_device_v1_cluster_state, file_kusinta_iot_identity_v1_identity]);
15
15
 
16
16
  /**
17
17
  * Describes the message kusinta.iot.commissioning.v1.Provenance.
@@ -24,6 +24,9 @@ export declare const file_kusinta_iot_common_v1_types: GenFile;
24
24
  * household nothing beyond what living in the home gives it. Setting or changing an asset
25
25
  * owner changes no one's access.
26
26
  *
27
+ * IT DECIDES ONE THING: whether a room's outer limits can bind the device
28
+ * (climate.v1.OuterRoomLimits, WHAT THEY BIND). It still decides nothing about who sees what.
29
+ *
27
30
  * Unset: not recorded. On a device whose ownership is COMPANY, anything that depends on it
28
31
  * reads an unset owner as owner_organisation; a device a person owns has none, and is theirs.
29
32
  *
@@ -103,9 +103,9 @@ export declare type DeviceDescriptor = Message<"kusinta.iot.device.v1.DeviceDesc
103
103
 
104
104
  /**
105
105
  * Who owns it as an asset, where ownership is COMPANY: see common.v1.AssetOwner, which
106
- * decides nobody's access. Set by the gateway from its own records (webrtc.v1.SetAssetOwner)
107
- * and given to whoever is given the descriptor; a connector leaves it unset, and the gateway
108
- * ignores it from one.
106
+ * decides nobody's access, only whether a room's outer limits can bind the device. Set by the
107
+ * gateway from its own records (webrtc.v1.SetAssetOwner) and given to whoever is given the
108
+ * descriptor; a connector leaves it unset, and the gateway ignores it from one.
109
109
  *
110
110
  * @generated from field: kusinta.iot.common.v1.AssetOwner asset_owner = 21;
111
111
  */
@@ -109,6 +109,13 @@ export declare type PropertyUpdate = Message<"kusinta.iot.device.v1.PropertyUpda
109
109
  * A value wider than 32 bits travels in int64_value or uint64_value: a cumulative energy
110
110
  * counter in milliwatt-hours passes uint32 at about 4,295 kWh. A producer may send a value
111
111
  * that fits in either width, and a consumer reads both into the same typed field.
112
+ *
113
+ * A non-integer value travels in double_value: a float holds about seven significant digits,
114
+ * so a meter total of 12345.678 kWh would arrive as 12345.677734375. float_value stays for a
115
+ * value that is 32-bit at its source, and a consumer reads both into the same typed field.
116
+ * Rollout note: a consumer that predates double_value drops it, so a producer sends it only
117
+ * once the gateway it reports to reads it, as for int64_value and uint64_value.
118
+ *
112
119
  * null_value is a reported Matter null: it leaves the typed field unset, "not reported",
113
120
  * rather than keeping the last value.
114
121
  *
@@ -168,6 +175,12 @@ export declare type PropertyUpdate = Message<"kusinta.iot.device.v1.PropertyUpda
168
175
  */
169
176
  value: NullValue;
170
177
  case: "nullValue";
178
+ } | {
179
+ /**
180
+ * @generated from field: double double_value = 19;
181
+ */
182
+ value: number;
183
+ case: "doubleValue";
171
184
  } | { case: undefined; value?: undefined };
172
185
 
173
186
  /**
@@ -11,7 +11,7 @@ import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identit
11
11
  * Describes the file kusinta/iot/device/v1/property_update.proto.
12
12
  */
13
13
  export const file_kusinta_iot_device_v1_property_update = /*@__PURE__*/
14
- fileDesc("CitrdXNpbnRhL2lvdC9kZXZpY2UvdjEvcHJvcGVydHlfdXBkYXRlLnByb3RvEhVrdXNpbnRhLmlvdC5kZXZpY2UudjEioAUKDlByb3BlcnR5VXBkYXRlEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEhsKDmF0dHJpYnV0ZV9uYW1lGAIgASgJSAGIAQESEwoJaW50X3ZhbHVlGAMgASgRSAASFAoKdWludF92YWx1ZRgEIAEoDUgAEhQKCmJvb2xfdmFsdWUYBSABKAhIABIVCgtmbG9hdF92YWx1ZRgGIAEoAkgAEhYKDHN0cmluZ192YWx1ZRgHIAEoCUgAEhUKC2J5dGVzX3ZhbHVlGAggASgMSAASFQoLaW50NjRfdmFsdWUYECABKBJIABIWCgx1aW50NjRfdmFsdWUYESABKARIABI2CgpudWxsX3ZhbHVlGBIgASgLMiAua3VzaW50YS5pb3QuZGV2aWNlLnYxLk51bGxWYWx1ZUgAEi0KCXRpbWVzdGFtcBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOgoKcHJvdmVuYW5jZRgLIAEoDjImLmt1c2ludGEuaW90LmRldmljZS52MS5WYWx1ZVByb3ZlbmFuY2USGAoLZW5kcG9pbnRfaWQYDCABKA1IAogBARIdChB2ZW5kb3JfZXh0ZW5zaW9uGA0gASgJSAOIAQESFwoKY2x1c3Rlcl9pZBgOIAEoDUgEiAEBEhkKDGF0dHJpYnV0ZV9pZBgPIAEoDUgFiAEBQgcKBXZhbHVlQhEKD19hdHRyaWJ1dGVfbmFtZUIOCgxfZW5kcG9pbnRfaWRCEwoRX3ZlbmRvcl9leHRlbnNpb25CDQoLX2NsdXN0ZXJfaWRCDwoNX2F0dHJpYnV0ZV9pZEoECAoQC1IOY2x1c3Rlcl9pZF9oZXgiggEKE1Byb3BlcnR5VXBkYXRlQmF0Y2gSNgoHdXBkYXRlcxgBIAMoCzIlLmt1c2ludGEuaW90LmRldmljZS52MS5Qcm9wZXJ0eVVwZGF0ZRIzCg9iYXRjaF90aW1lc3RhbXAYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKpQBCg9WYWx1ZVByb3ZlbmFuY2USIAocVkFMVUVfUFJPVkVOQU5DRV9VTlNQRUNJRklFRBAAEh4KGlZBTFVFX1BST1ZFTkFOQ0VfQ09ORklSTUVEEAESHwobVkFMVUVfUFJPVkVOQU5DRV9PUFRJTUlTVElDEAISHgoaVkFMVUVfUFJPVkVOQU5DRV9DT1JSRUNURUQQA0ICSAFiBnByb3RvMw", [file_google_protobuf_timestamp, file_kusinta_iot_device_v1_cluster_state, file_kusinta_iot_identity_v1_identity]);
14
+ fileDesc("CitrdXNpbnRhL2lvdC9kZXZpY2UvdjEvcHJvcGVydHlfdXBkYXRlLnByb3RvEhVrdXNpbnRhLmlvdC5kZXZpY2UudjEiuAUKDlByb3BlcnR5VXBkYXRlEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEhsKDmF0dHJpYnV0ZV9uYW1lGAIgASgJSAGIAQESEwoJaW50X3ZhbHVlGAMgASgRSAASFAoKdWludF92YWx1ZRgEIAEoDUgAEhQKCmJvb2xfdmFsdWUYBSABKAhIABIVCgtmbG9hdF92YWx1ZRgGIAEoAkgAEhYKDHN0cmluZ192YWx1ZRgHIAEoCUgAEhUKC2J5dGVzX3ZhbHVlGAggASgMSAASFQoLaW50NjRfdmFsdWUYECABKBJIABIWCgx1aW50NjRfdmFsdWUYESABKARIABI2CgpudWxsX3ZhbHVlGBIgASgLMiAua3VzaW50YS5pb3QuZGV2aWNlLnYxLk51bGxWYWx1ZUgAEhYKDGRvdWJsZV92YWx1ZRgTIAEoAUgAEi0KCXRpbWVzdGFtcBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOgoKcHJvdmVuYW5jZRgLIAEoDjImLmt1c2ludGEuaW90LmRldmljZS52MS5WYWx1ZVByb3ZlbmFuY2USGAoLZW5kcG9pbnRfaWQYDCABKA1IAogBARIdChB2ZW5kb3JfZXh0ZW5zaW9uGA0gASgJSAOIAQESFwoKY2x1c3Rlcl9pZBgOIAEoDUgEiAEBEhkKDGF0dHJpYnV0ZV9pZBgPIAEoDUgFiAEBQgcKBXZhbHVlQhEKD19hdHRyaWJ1dGVfbmFtZUIOCgxfZW5kcG9pbnRfaWRCEwoRX3ZlbmRvcl9leHRlbnNpb25CDQoLX2NsdXN0ZXJfaWRCDwoNX2F0dHJpYnV0ZV9pZEoECAoQC1IOY2x1c3Rlcl9pZF9oZXgiggEKE1Byb3BlcnR5VXBkYXRlQmF0Y2gSNgoHdXBkYXRlcxgBIAMoCzIlLmt1c2ludGEuaW90LmRldmljZS52MS5Qcm9wZXJ0eVVwZGF0ZRIzCg9iYXRjaF90aW1lc3RhbXAYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKpQBCg9WYWx1ZVByb3ZlbmFuY2USIAocVkFMVUVfUFJPVkVOQU5DRV9VTlNQRUNJRklFRBAAEh4KGlZBTFVFX1BST1ZFTkFOQ0VfQ09ORklSTUVEEAESHwobVkFMVUVfUFJPVkVOQU5DRV9PUFRJTUlTVElDEAISHgoaVkFMVUVfUFJPVkVOQU5DRV9DT1JSRUNURUQQA0ICSAFiBnByb3RvMw", [file_google_protobuf_timestamp, file_kusinta_iot_device_v1_cluster_state, file_kusinta_iot_identity_v1_identity]);
15
15
 
16
16
  /**
17
17
  * Describes the message kusinta.iot.device.v1.PropertyUpdate.
@@ -6,8 +6,8 @@ import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
6
  import type { Message } from "@bufbuild/protobuf";
7
7
  import type { DeviceId, GatewayId, SpaceId, TenantId, UserId } from "../../identity/v1/identity_pb.js";
8
8
  import type { SpaceType } from "../../common/v1/types_pb.js";
9
- import type { MembershipRelation } from "../../access/v1/roles_pb.js";
10
9
  import type { Timestamp } from "@bufbuild/protobuf/wkt";
10
+ import type { MembershipRelation } from "../../access/v1/roles_pb.js";
11
11
 
12
12
  /**
13
13
  * Describes the file kusinta/iot/space/v1/space.proto.
@@ -152,6 +152,23 @@ export declare type Space = Message<"kusinta.iot.space.v1.Space"> & {
152
152
  * @generated from field: string home_name = 15;
153
153
  */
154
154
  homeName: string;
155
+
156
+ /**
157
+ * On an apartment, when its household last cleared the home's climate history
158
+ * (webrtc.v1.ClimateHistoryCleared.cleared_at): the lasting floor a session that missed the
159
+ * push reads, sent on every listing. An app sets it as the home's floor when it reads it, and
160
+ * drops anything of the home it holds dated before it, device events included, as on the push
161
+ * (webrtc.v1 household.proto, CLIMATE HISTORY).
162
+ *
163
+ * Given to the home's residents only, and only when it falls within the recipient's current
164
+ * residency: the start of that residency is already their floor, and an earlier clear is a
165
+ * time from before it (access.v1.MembershipRelation). Unset for anyone else — service and
166
+ * staff included — where the home has never been cleared, and on every other space. A wipe
167
+ * erases it with the household's other records (webrtc.v1 household.proto, WIPE).
168
+ *
169
+ * @generated from field: google.protobuf.Timestamp climate_history_cleared_at = 16;
170
+ */
171
+ climateHistoryClearedAt?: Timestamp | undefined;
155
172
  };
156
173
 
157
174
  /**
@@ -12,7 +12,7 @@ import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identit
12
12
  * Describes the file kusinta/iot/space/v1/space.proto.
13
13
  */
14
14
  export const file_kusinta_iot_space_v1_space = /*@__PURE__*/
15
- fileDesc("CiBrdXNpbnRhL2lvdC9zcGFjZS92MS9zcGFjZS5wcm90bxIUa3VzaW50YS5pb3Quc3BhY2UudjEi7wQKBVNwYWNlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI0CgpzcGFjZV90eXBlGAIgASgOMiAua3VzaW50YS5pb3QuY29tbW9uLnYxLlNwYWNlVHlwZRIMCgRuYW1lGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEg0KBWZsb29yGAUgASgFEjkKD3BhcmVudF9zcGFjZV9pZBgGIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNwoNc3ViX3NwYWNlX2lkcxgHIAMoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNQoKZGV2aWNlX2lkcxgIIAMoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEj0KEHJlc2lkZW50X3VzZXJfaWQYCSABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWRCAhgBEjQKCXRlbmFudF9pZBgKIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlRlbmFudElkEjYKCmdhdGV3YXlfaWQYCyABKAsyIi5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5HYXRld2F5SWQSEQoJdGltZV96b25lGAwgASgJEjIKB21lbWJlcnMYDSADKAsyIS5rdXNpbnRhLmlvdC5zcGFjZS52MS5TcGFjZU1lbWJlchIYChBtZW1iZXJzX3dpdGhoZWxkGA4gASgIEhEKCWhvbWVfbmFtZRgPIAEoCSK1AQoLU3BhY2VNZW1iZXISMAoHdXNlcl9pZBgBIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBI7CghyZWxhdGlvbhgCIAEoDjIpLmt1c2ludGEuaW90LmFjY2Vzcy52MS5NZW1iZXJzaGlwUmVsYXRpb24SDAoEbmFtZRgDIAEoCRIpCgVzaW5jZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_roles, file_kusinta_iot_common_v1_types, file_kusinta_iot_identity_v1_identity]);
15
+ fileDesc("CiBrdXNpbnRhL2lvdC9zcGFjZS92MS9zcGFjZS5wcm90bxIUa3VzaW50YS5pb3Quc3BhY2UudjEirwUKBVNwYWNlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI0CgpzcGFjZV90eXBlGAIgASgOMiAua3VzaW50YS5pb3QuY29tbW9uLnYxLlNwYWNlVHlwZRIMCgRuYW1lGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEg0KBWZsb29yGAUgASgFEjkKD3BhcmVudF9zcGFjZV9pZBgGIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNwoNc3ViX3NwYWNlX2lkcxgHIAMoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNQoKZGV2aWNlX2lkcxgIIAMoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEj0KEHJlc2lkZW50X3VzZXJfaWQYCSABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWRCAhgBEjQKCXRlbmFudF9pZBgKIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlRlbmFudElkEjYKCmdhdGV3YXlfaWQYCyABKAsyIi5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5HYXRld2F5SWQSEQoJdGltZV96b25lGAwgASgJEjIKB21lbWJlcnMYDSADKAsyIS5rdXNpbnRhLmlvdC5zcGFjZS52MS5TcGFjZU1lbWJlchIYChBtZW1iZXJzX3dpdGhoZWxkGA4gASgIEhEKCWhvbWVfbmFtZRgPIAEoCRI+ChpjbGltYXRlX2hpc3RvcnlfY2xlYXJlZF9hdBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAitQEKC1NwYWNlTWVtYmVyEjAKB3VzZXJfaWQYASABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSOwoIcmVsYXRpb24YAiABKA4yKS5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuTWVtYmVyc2hpcFJlbGF0aW9uEgwKBG5hbWUYAyABKAkSKQoFc2luY2UYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgJIAWIGcHJvdG8z", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_roles, file_kusinta_iot_common_v1_types, file_kusinta_iot_identity_v1_identity]);
16
16
 
17
17
  /**
18
18
  * Describes the message kusinta.iot.space.v1.Space.
@@ -54,13 +54,26 @@ export declare type Pong = Message<"kusinta.iot.webrtc.v1.Pong"> & {
54
54
  export declare const PongSchema: GenMessage<Pong>;
55
55
 
56
56
  /**
57
+ * The gateway refused the session's handshake, gateway → app; the session ends.
58
+ *
57
59
  * @generated from message kusinta.iot.webrtc.v1.HandshakeRejected
58
60
  */
59
61
  export declare type HandshakeRejected = Message<"kusinta.iot.webrtc.v1.HandshakeRejected"> & {
60
62
  /**
63
+ * For logs and debugging only, in the gateway's words. An app MUST NOT show it to a user: it
64
+ * names the refusal by code, in its user's language.
65
+ *
61
66
  * @generated from field: string reason = 1;
62
67
  */
63
68
  reason: string;
69
+
70
+ /**
71
+ * Why, as a closed list. Rollout note: a gateway that predates this field sends reason alone,
72
+ * which an app reads as UNSPECIFIED.
73
+ *
74
+ * @generated from field: kusinta.iot.webrtc.v1.HandshakeRejectReason code = 2;
75
+ */
76
+ code: HandshakeRejectReason;
64
77
  };
65
78
 
66
79
  /**
@@ -859,7 +872,9 @@ export declare const RoomClimateChangedSchema: GenMessage<RoomClimateChanged>;
859
872
  * A mode on a space was switched on, changed or ended, gateway → app. `ended` rather than
860
873
  * kind UNSPECIFIED, so an app can still name the mode that finished. A mode on an
861
874
  * apartment or a room in one is sent to its residents only — whether a home stands empty
862
- * is theirs to know; one on any other space, to whoever reaches it.
875
+ * is theirs to know — and, while the home is empty, to the property owner and the gateway
876
+ * administrators who reach it (household.proto, EMPTY HOME), who are sent its end at MOVE-IN;
877
+ * one on any other space, to whoever reaches it.
863
878
  *
864
879
  * @generated from message kusinta.iot.webrtc.v1.ClimateModeChanged
865
880
  */
@@ -1158,6 +1173,51 @@ export declare type AppMessage = Message<"kusinta.iot.webrtc.v1.AppMessage"> & {
1158
1173
  */
1159
1174
  export declare const AppMessageSchema: GenMessage<AppMessage>;
1160
1175
 
1176
+ /**
1177
+ * Why a handshake was refused (HandshakeRejected.code).
1178
+ *
1179
+ * @generated from enum kusinta.iot.webrtc.v1.HandshakeRejectReason
1180
+ */
1181
+ export enum HandshakeRejectReason {
1182
+ /**
1183
+ * Not stated, or a value this app's schema does not know: an app says that the gateway
1184
+ * refused the connection, and no more. It treats the refusal as a passing failure, and
1185
+ * retries under its ordinary backoff.
1186
+ *
1187
+ * @generated from enum value: HANDSHAKE_REJECT_REASON_UNSPECIFIED = 0;
1188
+ */
1189
+ UNSPECIFIED = 0,
1190
+
1191
+ /**
1192
+ * A message the gateway could not decode. A fault of the app's: retrying repeats it, so an
1193
+ * app MUST NOT retry in a loop.
1194
+ *
1195
+ * @generated from enum value: HANDSHAKE_REJECT_REASON_INVALID_ENCODING = 1;
1196
+ */
1197
+ INVALID_ENCODING = 1,
1198
+
1199
+ /**
1200
+ * A message before AppHandshake, which must come first. A fault of the app's, as
1201
+ * INVALID_ENCODING is: an app MUST NOT retry in a loop.
1202
+ *
1203
+ * @generated from enum value: HANDSHAKE_REJECT_REASON_HANDSHAKE_REQUIRED = 2;
1204
+ */
1205
+ HANDSHAKE_REQUIRED = 2,
1206
+
1207
+ /**
1208
+ * The token in AppHandshake was not accepted (AppTokenClaims). A fresh token can help: an
1209
+ * app may refresh it and retry once, and then stops and tells its user.
1210
+ *
1211
+ * @generated from enum value: HANDSHAKE_REJECT_REASON_AUTHENTICATION_FAILED = 3;
1212
+ */
1213
+ AUTHENTICATION_FAILED = 3,
1214
+ }
1215
+
1216
+ /**
1217
+ * Describes the enum kusinta.iot.webrtc.v1.HandshakeRejectReason.
1218
+ */
1219
+ export declare const HandshakeRejectReasonSchema: GenEnum<HandshakeRejectReason>;
1220
+
1161
1221
  /**
1162
1222
  * Machine-readable classification of a session-level gateway error, so the app
1163
1223
  * can branch without string-matching a human sentence. Deliberately an enum here,
@@ -27,7 +27,7 @@ import { file_kusinta_iot_webrtc_v1_permission_push } from "./permission_push_pb
27
27
  * Describes the file kusinta/iot/webrtc/v1/envelope.proto.
28
28
  */
29
29
  export const file_kusinta_iot_webrtc_v1_envelope = /*@__PURE__*/
30
- fileDesc("CiRrdXNpbnRhL2lvdC93ZWJydGMvdjEvZW52ZWxvcGUucHJvdG8SFWt1c2ludGEuaW90LndlYnJ0Yy52MSIGCgRQaW5nIgYKBFBvbmciIwoRSGFuZHNoYWtlUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJIlwKDEFwcEhhbmRzaGFrZRILCgNqd3QYASABKAkSPwoUc3Vic2NyaWJlX2RldmljZV9pZHMYAiADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCJJChBTdWJzY3JpYmVEZXZpY2VzEjUKCmRldmljZV9pZHMYASADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCJLChJVbnN1YnNjcmliZURldmljZXMSNQoKZGV2aWNlX2lkcxgBIAMoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkIpMBChNSZWZ1c2VkU3Vic2NyaXB0aW9uEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjUKBGNvZGUYAiABKA4yJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2F0ZXdheUVycm9yQ29kZRIPCgdtZXNzYWdlGAMgASgJIpoBCg9TdWJzY3JpcHRpb25BY2sSEwoLaW5fcmVwbHlfdG8YASABKAkSNQoKc3Vic2NyaWJlZBgCIAMoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjsKB3JlZnVzZWQYAyADKAsyKi5rdXNpbnRhLmlvdC53ZWJydGMudjEuUmVmdXNlZFN1YnNjcmlwdGlvbiLRAQoTUHJvcGVydHlSZWFkUmVxdWVzdBI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIzCgZ0YXJnZXQYByABKAsyIy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuQXR0cmlidXRlUmVmSgQIAhAHUg5hdHRyaWJ1dGVfbmFtZVIOY2x1c3Rlcl9pZF9oZXhSCmNsdXN0ZXJfaWRSC2VuZHBvaW50X2lkUhB2ZW5kb3JfZXh0ZW5zaW9uIswBCgxHYXRld2F5RXJyb3ISNQoEY29kZRgBIAEoDjInLmt1c2ludGEuaW90LndlYnJ0Yy52MS5HYXRld2F5RXJyb3JDb2RlEg8KB21lc3NhZ2UYAiABKAkSQwoIbWV0YWRhdGEYAyADKAsyMS5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2F0ZXdheUVycm9yLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIs8NChBNYW5hZ2VtZW50UmVzdWx0EhMKC2luX3JlcGx5X3RvGAEgASgJEjQKBWVycm9yGAIgASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLkdhdGV3YXlFcnJvckgAEiwKBXNwYWNlGAMgASgLMhsua3VzaW50YS5pb3Quc3BhY2UudjEuU3BhY2VIABI2CgpzcGFjZV90cmVlGAQgASgLMiAua3VzaW50YS5pb3Qud2VicnRjLnYxLlNwYWNlVHJlZUgAEjMKA2FjaxgFIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5NYW5hZ2VtZW50QWNrSAASNAoFbGlua3MYBiABKAsyIy5rdXNpbnRhLmlvdC5saW5rLnYxLkRldmljZUxpbmtMaXN0SAASQAoNcm9vbV9jbGltYXRlcxgHIAEoCzInLmt1c2ludGEuaW90LmNsaW1hdGUudjEuUm9vbUNsaW1hdGVMaXN0SAASOwoMcm9vbV9oaXN0b3J5GAggASgLMiMua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tSGlzdG9yeUgAEkYKEnByaXZhY3lfZGlzY2xvc3VyZRgJIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcml2YWN5RGlzY2xvc3VyZUgAElQKGWFwYXJ0bWVudF9jbGltYXRlX3N1bW1hcnkYCiABKAsyLy5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkFwYXJ0bWVudENsaW1hdGVTdW1tYXJ5SAASPAoNaXNzdWVkX2ludml0ZRgLIAEoCzIjLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Jc3N1ZWRJbnZpdGVIABI8Cg1zcGFjZV9pbnZpdGVzGAwgASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLlNwYWNlSW52aXRlc0gAEkAKD2dhdGV3YXlfbWVtYmVycxgNIAEoCzIlLmt1c2ludGEuaW90LndlYnJ0Yy52MS5HYXRld2F5TWVtYmVyc0gAEkYKEnByb21vdGlvbl9yZXF1ZXN0cxgOIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcm9tb3Rpb25SZXF1ZXN0c0gAEj8KDmhlYXRpbmdfbGF5b3V0GA8gASgLMiUua3VzaW50YS5pb3QuaGVhdGluZy52MS5IZWF0aW5nTGF5b3V0SAASPwoOaGVhdGluZ19yZWNvcmQYECABKAsyJS5rdXNpbnRhLmlvdC5oZWF0aW5nLnYxLkhlYXRpbmdSZWNvcmRIABJKChJhY2NvdW50X2xpbmtfbm9uY2UYESABKAsyLC5rdXNpbnRhLmlvdC5hY2NvdW50bGluay52MS5BY2NvdW50TGlua05vbmNlSAASQQoNYWNjb3VudF9saW5rcxgSIAEoCzIoLmt1c2ludGEuaW90LmFjY291bnRsaW5rLnYxLkFjY291bnRMaW5rc0gAElMKFWNvbW1pc3Npb25pbmdfcHJvZmlsZRgTIAEoCzIyLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1Byb2ZpbGVIABJRChRjb21taXNzaW9uaW5nX3JlY29yZBgUIAEoCzIxLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1JlY29yZEgAEj8KC2hvbWVfc2V0dXBzGBUgASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Ib21lU2V0dXBzSAASTwoTY29tbWlzc2lvbmluZ19ncmFudBgWIAEoCzIwLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0dyYW50SAASUQoUY29tbWlzc2lvbmluZ19ncmFudHMYFyABKAsyMS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdHcmFudHNIABJGChJob3VzZWhvbGRfaGFuZG92ZXIYGCABKAsyKC5rdXNpbnRhLmlvdC53ZWJydGMudjEuSG91c2Vob2xkSGFuZG92ZXJIABJIChNob3VzZWhvbGRfaGFuZG92ZXJzGBkgASgLMikua3VzaW50YS5pb3Qud2VicnRjLnYxLkhvdXNlaG9sZEhhbmRvdmVyc0gAEkIKEGhvdXNlaG9sZF9leHBvcnQYGiABKAsyJi5rdXNpbnRhLmlvdC53ZWJydGMudjEuSG91c2Vob2xkRXhwb3J0SABCCAoGcmVzdWx0IvsBCgxTdGFydFBhaXJpbmcSOgoMY29ubmVjdG9yX2lkGAEgASgLMiQua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuQ29ubmVjdG9ySWQSNAoGd2luZG93GAIgASgLMiQua3VzaW50YS5pb3QuY29tbW9uLnYxLlBhaXJpbmdXaW5kb3cSOgoQaW5pdGlhbF9zcGFjZV9pZBgDIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSPQoJb3duZXJzaGlwGAQgASgOMioua3VzaW50YS5pb3QuY29tbW9uLnYxLkRldmljZU93bmVyc2hpcFR5cGUijwEKDlBhaXJpbmdTdGFydGVkEhMKC2luX3JlcGx5X3RvGAEgASgJEi4KCmV4cGlyZXNfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjgKBWVycm9yGAMgASgLMikua3VzaW50YS5pb3QuY29tbW9uLnYxLlBhaXJpbmdFcnJvckRldGFpbCKXAQoPUGFpcmluZ0ZpbmlzaGVkEhMKC2luX3JlcGx5X3RvGAEgASgJEjUKCmRldmljZV9pZHMYAiADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBI4CgVlcnJvchgDIAEoCzIpLmt1c2ludGEuaW90LmNvbW1vbi52MS5QYWlyaW5nRXJyb3JEZXRhaWwiTQoLTGlua0NoYW5nZWQSLQoEbGluaxgBIAEoCzIfLmt1c2ludGEuaW90LmxpbmsudjEuRGV2aWNlTGluaxIPCgdyZW1vdmVkGAIgASgIIogDChNDb25uZWN0b3JEZXNjcmlwdG9yEjoKDGNvbm5lY3Rvcl9pZBgBIAEoCzIkLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkNvbm5lY3RvcklkEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIhChlzdXBwb3J0ZWRfZGV2aWNlX3R5cGVfaWRzGAMgAygNEhgKEHN1cHBvcnRzX3BhaXJpbmcYBCABKAgSHQoVc3VwcG9ydHNfcHJvdmlzaW9uaW5nGAUgASgIEhUKDWJyb2tlcnNfbGlua3MYBiABKAgSMgoEa2luZBgHIAEoDjIkLmt1c2ludGEuaW90LmNvbW1vbi52MS5Db25uZWN0b3JLaW5kEhMKC2Rlc2NyaXB0aW9uGAggASgJEjwKDmJhY2tlbmRfaGVhbHRoGAkgASgLMiQua3VzaW50YS5pb3QuY29tbW9uLnYxLkJhY2tlbmRIZWFsdGgSJQodc3VwcG9ydHNfYmFja2VuZF9yZWluaXRpYWxpemUYCiABKAgiVQoTQ29ubmVjdG9yc0Fubm91bmNlZBI+Cgpjb25uZWN0b3JzGAEgAygLMioua3VzaW50YS5pb3Qud2VicnRjLnYxLkNvbm5lY3RvckRlc2NyaXB0b3IiRwoSUm9vbUNsaW1hdGVDaGFuZ2VkEjEKBHJvb20YASABKAsyIy5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21DbGltYXRlIlYKEkNsaW1hdGVNb2RlQ2hhbmdlZBIxCgRtb2RlGAEgASgLMiMua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlTW9kZRINCgVlbmRlZBgCIAEoCCLJDgoOR2F0ZXdheU1lc3NhZ2USEgoKbWVzc2FnZV9pZBgBIAEoCRIrCgdzZW50X2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJECg5zdGF0ZV9zbmFwc2hvdBgDIAEoCzIqLmt1c2ludGEuaW90LndlYnJ0Yy52MS5EZXZpY2VTdGF0ZVNuYXBzaG90SAASQAoPcHJvcGVydHlfcmVwb3J0GAQgASgLMiUua3VzaW50YS5pb3Qud2VicnRjLnYxLlByb3BlcnR5UmVwb3J0SAASSAoRcGVybWlzc2lvbl91cGRhdGUYBSABKAsyKy5rdXNpbnRhLmlvdC53ZWJydGMudjEuTGl2ZVBlcm1pc3Npb25VcGRhdGVIABI+Cg5jb21tYW5kX3Jlc3VsdBgGIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Db21tYW5kUmVzdWx0SAASKwoEcG9uZxgIIAEoCzIbLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qb25nSAASRgoSaGFuZHNoYWtlX3JlamVjdGVkGAkgASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLkhhbmRzaGFrZVJlamVjdGVkSAASNAoFZXJyb3IYCiABKAsyIy5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2F0ZXdheUVycm9ySAASQgoQc3Vic2NyaXB0aW9uX2FjaxgLIAEoCzImLmt1c2ludGEuaW90LndlYnJ0Yy52MS5TdWJzY3JpcHRpb25BY2tIABI6CgxkZXZpY2VfYWRkZWQYDCABKAsyIi5rdXNpbnRhLmlvdC53ZWJydGMudjEuRGV2aWNlQWRkZWRIABI+Cg5kZXZpY2VfcmVtb3ZlZBgNIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5EZXZpY2VSZW1vdmVkSAASRAoRbWFuYWdlbWVudF9yZXN1bHQYDiABKAsyJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuTWFuYWdlbWVudFJlc3VsdEgAEkAKDWRldmljZV9ldmVudHMYECABKAsyJy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGV2aWNlRXZlbnRCYXRjaEgAEkAKD3BhaXJpbmdfc3RhcnRlZBgRIAEoCzIlLmt1c2ludGEuaW90LndlYnJ0Yy52MS5QYWlyaW5nU3RhcnRlZEgAEkIKEHBhaXJpbmdfZmluaXNoZWQYEiABKAsyJi5rdXNpbnRhLmlvdC53ZWJydGMudjEuUGFpcmluZ0ZpbmlzaGVkSAASOgoMbGlua19jaGFuZ2VkGBMgASgLMiIua3VzaW50YS5pb3Qud2VicnRjLnYxLkxpbmtDaGFuZ2VkSAASSgoUY29ubmVjdG9yc19hbm5vdW5jZWQYFCABKAsyKi5rdXNpbnRhLmlvdC53ZWJydGMudjEuQ29ubmVjdG9yc0Fubm91bmNlZEgAEkkKFHJvb21fY2xpbWF0ZV9jaGFuZ2VkGBUgASgLMikua3VzaW50YS5pb3Qud2VicnRjLnYxLlJvb21DbGltYXRlQ2hhbmdlZEgAEkkKFGNsaW1hdGVfbW9kZV9jaGFuZ2VkGBYgASgLMikua3VzaW50YS5pb3Qud2VicnRjLnYxLkNsaW1hdGVNb2RlQ2hhbmdlZEgAEk0KFnNlcnZpY2Vfc3RhdHVzX2NoYW5nZWQYFyABKAsyKy5rdXNpbnRhLmlvdC53ZWJydGMudjEuU2VydmljZVN0YXR1c0NoYW5nZWRIABI8Cg1zcGFjZV9pbnZpdGVzGBggASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLlNwYWNlSW52aXRlc0gAEkYKEnByb21vdGlvbl9yZXF1ZXN0cxgZIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcm9tb3Rpb25SZXF1ZXN0c0gAEk0KEmNvbW1pc3Npb25pbmdfdGVzdBgaIAEoCzIvLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1Rlc3RIABJRChRjb21taXNzaW9uaW5nX2dyYW50cxgbIAEoCzIxLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0dyYW50c0gAEkYKEmhvdXNlaG9sZF9oYW5kb3ZlchgcIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Ib3VzZWhvbGRIYW5kb3ZlckgAEk8KF2NsaW1hdGVfaGlzdG9yeV9jbGVhcmVkGB0gASgLMiwua3VzaW50YS5pb3Qud2VicnRjLnYxLkNsaW1hdGVIaXN0b3J5Q2xlYXJlZEgAQgkKB3BheWxvYWRKBAgPEBBKBAgHEAhSFmF0dHJpYnV0ZV93cml0ZV9yZXN1bHRSDnByb3BlcnR5X2V2ZW50IoMFCgpBcHBNZXNzYWdlEhIKCm1lc3NhZ2VfaWQYASABKAkSKwoHc2VudF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOAoJaGFuZHNoYWtlGAMgASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLkFwcEhhbmRzaGFrZUgAEjcKB2NvbW1hbmQYBCABKAsyJC5rdXNpbnRhLmlvdC53ZWJydGMudjEuRGV2aWNlQ29tbWFuZEgAEkIKDHJlYWRfcmVxdWVzdBgFIAEoCzIqLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcm9wZXJ0eVJlYWRSZXF1ZXN0SAASKwoEcGluZxgGIAEoCzIbLmt1c2ludGEuaW90LndlYnJ0Yy52MS5QaW5nSAASPAoJc3Vic2NyaWJlGAcgASgLMicua3VzaW50YS5pb3Qud2VicnRjLnYxLlN1YnNjcmliZURldmljZXNIABJACgt1bnN1YnNjcmliZRgIIAEoCzIpLmt1c2ludGEuaW90LndlYnJ0Yy52MS5VbnN1YnNjcmliZURldmljZXNIABI+CgptYW5hZ2VtZW50GAkgASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLk1hbmFnZW1lbnRSZXF1ZXN0SAASRwoPYXR0cmlidXRlX3dyaXRlGAogASgLMiwua3VzaW50YS5pb3Qud2VicnRjLnYxLkF0dHJpYnV0ZVdyaXRlUmVxdWVzdEgAEjwKDXN0YXJ0X3BhaXJpbmcYCyABKAsyIy5rdXNpbnRhLmlvdC53ZWJydGMudjEuU3RhcnRQYWlyaW5nSABCCQoHcGF5bG9hZCqiAgoQR2F0ZXdheUVycm9yQ29kZRIiCh5HQVRFV0FZX0VSUk9SX0NPREVfVU5TUEVDSUZJRUQQABIjCh9HQVRFV0FZX0VSUk9SX0NPREVfTk9UX0VOVElUTEVEEAESJgoiR0FURVdBWV9FUlJPUl9DT0RFX0lOVkFMSURfUkVRVUVTVBACEiIKHkdBVEVXQVlfRVJST1JfQ09ERV9VTkFWQUlMQUJMRRADEh8KG0dBVEVXQVlfRVJST1JfQ09ERV9JTlRFUk5BTBAEEiwKKEdBVEVXQVlfRVJST1JfQ09ERV9TRVNTSU9OX0xJTUlUX1JFQUNIRUQQBRIqCiZHQVRFV0FZX0VSUk9SX0NPREVfRkFJTEVEX1BSRUNPTkRJVElPThAGQgJIAWIGcHJvdG8z", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_acl, file_kusinta_iot_accountlink_v1_account_link, file_kusinta_iot_climate_v1_climate, file_kusinta_iot_commissioning_v1_commissioning, file_kusinta_iot_common_v1_pairing, file_kusinta_iot_common_v1_types, file_kusinta_iot_device_v1_device_event, file_kusinta_iot_heating_v1_heating, 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_household, 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]);
30
+ fileDesc("CiRrdXNpbnRhL2lvdC93ZWJydGMvdjEvZW52ZWxvcGUucHJvdG8SFWt1c2ludGEuaW90LndlYnJ0Yy52MSIGCgRQaW5nIgYKBFBvbmciXwoRSGFuZHNoYWtlUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJEjoKBGNvZGUYAiABKA4yLC5rdXNpbnRhLmlvdC53ZWJydGMudjEuSGFuZHNoYWtlUmVqZWN0UmVhc29uIlwKDEFwcEhhbmRzaGFrZRILCgNqd3QYASABKAkSPwoUc3Vic2NyaWJlX2RldmljZV9pZHMYAiADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCJJChBTdWJzY3JpYmVEZXZpY2VzEjUKCmRldmljZV9pZHMYASADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCJLChJVbnN1YnNjcmliZURldmljZXMSNQoKZGV2aWNlX2lkcxgBIAMoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkIpMBChNSZWZ1c2VkU3Vic2NyaXB0aW9uEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjUKBGNvZGUYAiABKA4yJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2F0ZXdheUVycm9yQ29kZRIPCgdtZXNzYWdlGAMgASgJIpoBCg9TdWJzY3JpcHRpb25BY2sSEwoLaW5fcmVwbHlfdG8YASABKAkSNQoKc3Vic2NyaWJlZBgCIAMoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjsKB3JlZnVzZWQYAyADKAsyKi5rdXNpbnRhLmlvdC53ZWJydGMudjEuUmVmdXNlZFN1YnNjcmlwdGlvbiLRAQoTUHJvcGVydHlSZWFkUmVxdWVzdBI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIzCgZ0YXJnZXQYByABKAsyIy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuQXR0cmlidXRlUmVmSgQIAhAHUg5hdHRyaWJ1dGVfbmFtZVIOY2x1c3Rlcl9pZF9oZXhSCmNsdXN0ZXJfaWRSC2VuZHBvaW50X2lkUhB2ZW5kb3JfZXh0ZW5zaW9uIswBCgxHYXRld2F5RXJyb3ISNQoEY29kZRgBIAEoDjInLmt1c2ludGEuaW90LndlYnJ0Yy52MS5HYXRld2F5RXJyb3JDb2RlEg8KB21lc3NhZ2UYAiABKAkSQwoIbWV0YWRhdGEYAyADKAsyMS5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2F0ZXdheUVycm9yLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIs8NChBNYW5hZ2VtZW50UmVzdWx0EhMKC2luX3JlcGx5X3RvGAEgASgJEjQKBWVycm9yGAIgASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLkdhdGV3YXlFcnJvckgAEiwKBXNwYWNlGAMgASgLMhsua3VzaW50YS5pb3Quc3BhY2UudjEuU3BhY2VIABI2CgpzcGFjZV90cmVlGAQgASgLMiAua3VzaW50YS5pb3Qud2VicnRjLnYxLlNwYWNlVHJlZUgAEjMKA2FjaxgFIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5NYW5hZ2VtZW50QWNrSAASNAoFbGlua3MYBiABKAsyIy5rdXNpbnRhLmlvdC5saW5rLnYxLkRldmljZUxpbmtMaXN0SAASQAoNcm9vbV9jbGltYXRlcxgHIAEoCzInLmt1c2ludGEuaW90LmNsaW1hdGUudjEuUm9vbUNsaW1hdGVMaXN0SAASOwoMcm9vbV9oaXN0b3J5GAggASgLMiMua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tSGlzdG9yeUgAEkYKEnByaXZhY3lfZGlzY2xvc3VyZRgJIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcml2YWN5RGlzY2xvc3VyZUgAElQKGWFwYXJ0bWVudF9jbGltYXRlX3N1bW1hcnkYCiABKAsyLy5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkFwYXJ0bWVudENsaW1hdGVTdW1tYXJ5SAASPAoNaXNzdWVkX2ludml0ZRgLIAEoCzIjLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Jc3N1ZWRJbnZpdGVIABI8Cg1zcGFjZV9pbnZpdGVzGAwgASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLlNwYWNlSW52aXRlc0gAEkAKD2dhdGV3YXlfbWVtYmVycxgNIAEoCzIlLmt1c2ludGEuaW90LndlYnJ0Yy52MS5HYXRld2F5TWVtYmVyc0gAEkYKEnByb21vdGlvbl9yZXF1ZXN0cxgOIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcm9tb3Rpb25SZXF1ZXN0c0gAEj8KDmhlYXRpbmdfbGF5b3V0GA8gASgLMiUua3VzaW50YS5pb3QuaGVhdGluZy52MS5IZWF0aW5nTGF5b3V0SAASPwoOaGVhdGluZ19yZWNvcmQYECABKAsyJS5rdXNpbnRhLmlvdC5oZWF0aW5nLnYxLkhlYXRpbmdSZWNvcmRIABJKChJhY2NvdW50X2xpbmtfbm9uY2UYESABKAsyLC5rdXNpbnRhLmlvdC5hY2NvdW50bGluay52MS5BY2NvdW50TGlua05vbmNlSAASQQoNYWNjb3VudF9saW5rcxgSIAEoCzIoLmt1c2ludGEuaW90LmFjY291bnRsaW5rLnYxLkFjY291bnRMaW5rc0gAElMKFWNvbW1pc3Npb25pbmdfcHJvZmlsZRgTIAEoCzIyLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1Byb2ZpbGVIABJRChRjb21taXNzaW9uaW5nX3JlY29yZBgUIAEoCzIxLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1JlY29yZEgAEj8KC2hvbWVfc2V0dXBzGBUgASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Ib21lU2V0dXBzSAASTwoTY29tbWlzc2lvbmluZ19ncmFudBgWIAEoCzIwLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0dyYW50SAASUQoUY29tbWlzc2lvbmluZ19ncmFudHMYFyABKAsyMS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdHcmFudHNIABJGChJob3VzZWhvbGRfaGFuZG92ZXIYGCABKAsyKC5rdXNpbnRhLmlvdC53ZWJydGMudjEuSG91c2Vob2xkSGFuZG92ZXJIABJIChNob3VzZWhvbGRfaGFuZG92ZXJzGBkgASgLMikua3VzaW50YS5pb3Qud2VicnRjLnYxLkhvdXNlaG9sZEhhbmRvdmVyc0gAEkIKEGhvdXNlaG9sZF9leHBvcnQYGiABKAsyJi5rdXNpbnRhLmlvdC53ZWJydGMudjEuSG91c2Vob2xkRXhwb3J0SABCCAoGcmVzdWx0IvsBCgxTdGFydFBhaXJpbmcSOgoMY29ubmVjdG9yX2lkGAEgASgLMiQua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuQ29ubmVjdG9ySWQSNAoGd2luZG93GAIgASgLMiQua3VzaW50YS5pb3QuY29tbW9uLnYxLlBhaXJpbmdXaW5kb3cSOgoQaW5pdGlhbF9zcGFjZV9pZBgDIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSPQoJb3duZXJzaGlwGAQgASgOMioua3VzaW50YS5pb3QuY29tbW9uLnYxLkRldmljZU93bmVyc2hpcFR5cGUijwEKDlBhaXJpbmdTdGFydGVkEhMKC2luX3JlcGx5X3RvGAEgASgJEi4KCmV4cGlyZXNfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjgKBWVycm9yGAMgASgLMikua3VzaW50YS5pb3QuY29tbW9uLnYxLlBhaXJpbmdFcnJvckRldGFpbCKXAQoPUGFpcmluZ0ZpbmlzaGVkEhMKC2luX3JlcGx5X3RvGAEgASgJEjUKCmRldmljZV9pZHMYAiADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBI4CgVlcnJvchgDIAEoCzIpLmt1c2ludGEuaW90LmNvbW1vbi52MS5QYWlyaW5nRXJyb3JEZXRhaWwiTQoLTGlua0NoYW5nZWQSLQoEbGluaxgBIAEoCzIfLmt1c2ludGEuaW90LmxpbmsudjEuRGV2aWNlTGluaxIPCgdyZW1vdmVkGAIgASgIIogDChNDb25uZWN0b3JEZXNjcmlwdG9yEjoKDGNvbm5lY3Rvcl9pZBgBIAEoCzIkLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkNvbm5lY3RvcklkEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIhChlzdXBwb3J0ZWRfZGV2aWNlX3R5cGVfaWRzGAMgAygNEhgKEHN1cHBvcnRzX3BhaXJpbmcYBCABKAgSHQoVc3VwcG9ydHNfcHJvdmlzaW9uaW5nGAUgASgIEhUKDWJyb2tlcnNfbGlua3MYBiABKAgSMgoEa2luZBgHIAEoDjIkLmt1c2ludGEuaW90LmNvbW1vbi52MS5Db25uZWN0b3JLaW5kEhMKC2Rlc2NyaXB0aW9uGAggASgJEjwKDmJhY2tlbmRfaGVhbHRoGAkgASgLMiQua3VzaW50YS5pb3QuY29tbW9uLnYxLkJhY2tlbmRIZWFsdGgSJQodc3VwcG9ydHNfYmFja2VuZF9yZWluaXRpYWxpemUYCiABKAgiVQoTQ29ubmVjdG9yc0Fubm91bmNlZBI+Cgpjb25uZWN0b3JzGAEgAygLMioua3VzaW50YS5pb3Qud2VicnRjLnYxLkNvbm5lY3RvckRlc2NyaXB0b3IiRwoSUm9vbUNsaW1hdGVDaGFuZ2VkEjEKBHJvb20YASABKAsyIy5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21DbGltYXRlIlYKEkNsaW1hdGVNb2RlQ2hhbmdlZBIxCgRtb2RlGAEgASgLMiMua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlTW9kZRINCgVlbmRlZBgCIAEoCCLJDgoOR2F0ZXdheU1lc3NhZ2USEgoKbWVzc2FnZV9pZBgBIAEoCRIrCgdzZW50X2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJECg5zdGF0ZV9zbmFwc2hvdBgDIAEoCzIqLmt1c2ludGEuaW90LndlYnJ0Yy52MS5EZXZpY2VTdGF0ZVNuYXBzaG90SAASQAoPcHJvcGVydHlfcmVwb3J0GAQgASgLMiUua3VzaW50YS5pb3Qud2VicnRjLnYxLlByb3BlcnR5UmVwb3J0SAASSAoRcGVybWlzc2lvbl91cGRhdGUYBSABKAsyKy5rdXNpbnRhLmlvdC53ZWJydGMudjEuTGl2ZVBlcm1pc3Npb25VcGRhdGVIABI+Cg5jb21tYW5kX3Jlc3VsdBgGIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Db21tYW5kUmVzdWx0SAASKwoEcG9uZxgIIAEoCzIbLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qb25nSAASRgoSaGFuZHNoYWtlX3JlamVjdGVkGAkgASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLkhhbmRzaGFrZVJlamVjdGVkSAASNAoFZXJyb3IYCiABKAsyIy5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2F0ZXdheUVycm9ySAASQgoQc3Vic2NyaXB0aW9uX2FjaxgLIAEoCzImLmt1c2ludGEuaW90LndlYnJ0Yy52MS5TdWJzY3JpcHRpb25BY2tIABI6CgxkZXZpY2VfYWRkZWQYDCABKAsyIi5rdXNpbnRhLmlvdC53ZWJydGMudjEuRGV2aWNlQWRkZWRIABI+Cg5kZXZpY2VfcmVtb3ZlZBgNIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5EZXZpY2VSZW1vdmVkSAASRAoRbWFuYWdlbWVudF9yZXN1bHQYDiABKAsyJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuTWFuYWdlbWVudFJlc3VsdEgAEkAKDWRldmljZV9ldmVudHMYECABKAsyJy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGV2aWNlRXZlbnRCYXRjaEgAEkAKD3BhaXJpbmdfc3RhcnRlZBgRIAEoCzIlLmt1c2ludGEuaW90LndlYnJ0Yy52MS5QYWlyaW5nU3RhcnRlZEgAEkIKEHBhaXJpbmdfZmluaXNoZWQYEiABKAsyJi5rdXNpbnRhLmlvdC53ZWJydGMudjEuUGFpcmluZ0ZpbmlzaGVkSAASOgoMbGlua19jaGFuZ2VkGBMgASgLMiIua3VzaW50YS5pb3Qud2VicnRjLnYxLkxpbmtDaGFuZ2VkSAASSgoUY29ubmVjdG9yc19hbm5vdW5jZWQYFCABKAsyKi5rdXNpbnRhLmlvdC53ZWJydGMudjEuQ29ubmVjdG9yc0Fubm91bmNlZEgAEkkKFHJvb21fY2xpbWF0ZV9jaGFuZ2VkGBUgASgLMikua3VzaW50YS5pb3Qud2VicnRjLnYxLlJvb21DbGltYXRlQ2hhbmdlZEgAEkkKFGNsaW1hdGVfbW9kZV9jaGFuZ2VkGBYgASgLMikua3VzaW50YS5pb3Qud2VicnRjLnYxLkNsaW1hdGVNb2RlQ2hhbmdlZEgAEk0KFnNlcnZpY2Vfc3RhdHVzX2NoYW5nZWQYFyABKAsyKy5rdXNpbnRhLmlvdC53ZWJydGMudjEuU2VydmljZVN0YXR1c0NoYW5nZWRIABI8Cg1zcGFjZV9pbnZpdGVzGBggASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLlNwYWNlSW52aXRlc0gAEkYKEnByb21vdGlvbl9yZXF1ZXN0cxgZIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcm9tb3Rpb25SZXF1ZXN0c0gAEk0KEmNvbW1pc3Npb25pbmdfdGVzdBgaIAEoCzIvLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1Rlc3RIABJRChRjb21taXNzaW9uaW5nX2dyYW50cxgbIAEoCzIxLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0dyYW50c0gAEkYKEmhvdXNlaG9sZF9oYW5kb3ZlchgcIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Ib3VzZWhvbGRIYW5kb3ZlckgAEk8KF2NsaW1hdGVfaGlzdG9yeV9jbGVhcmVkGB0gASgLMiwua3VzaW50YS5pb3Qud2VicnRjLnYxLkNsaW1hdGVIaXN0b3J5Q2xlYXJlZEgAQgkKB3BheWxvYWRKBAgPEBBKBAgHEAhSFmF0dHJpYnV0ZV93cml0ZV9yZXN1bHRSDnByb3BlcnR5X2V2ZW50IoMFCgpBcHBNZXNzYWdlEhIKCm1lc3NhZ2VfaWQYASABKAkSKwoHc2VudF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOAoJaGFuZHNoYWtlGAMgASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLkFwcEhhbmRzaGFrZUgAEjcKB2NvbW1hbmQYBCABKAsyJC5rdXNpbnRhLmlvdC53ZWJydGMudjEuRGV2aWNlQ29tbWFuZEgAEkIKDHJlYWRfcmVxdWVzdBgFIAEoCzIqLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcm9wZXJ0eVJlYWRSZXF1ZXN0SAASKwoEcGluZxgGIAEoCzIbLmt1c2ludGEuaW90LndlYnJ0Yy52MS5QaW5nSAASPAoJc3Vic2NyaWJlGAcgASgLMicua3VzaW50YS5pb3Qud2VicnRjLnYxLlN1YnNjcmliZURldmljZXNIABJACgt1bnN1YnNjcmliZRgIIAEoCzIpLmt1c2ludGEuaW90LndlYnJ0Yy52MS5VbnN1YnNjcmliZURldmljZXNIABI+CgptYW5hZ2VtZW50GAkgASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLk1hbmFnZW1lbnRSZXF1ZXN0SAASRwoPYXR0cmlidXRlX3dyaXRlGAogASgLMiwua3VzaW50YS5pb3Qud2VicnRjLnYxLkF0dHJpYnV0ZVdyaXRlUmVxdWVzdEgAEjwKDXN0YXJ0X3BhaXJpbmcYCyABKAsyIy5rdXNpbnRhLmlvdC53ZWJydGMudjEuU3RhcnRQYWlyaW5nSABCCQoHcGF5bG9hZCrRAQoVSGFuZHNoYWtlUmVqZWN0UmVhc29uEicKI0hBTkRTSEFLRV9SRUpFQ1RfUkVBU09OX1VOU1BFQ0lGSUVEEAASLAooSEFORFNIQUtFX1JFSkVDVF9SRUFTT05fSU5WQUxJRF9FTkNPRElORxABEi4KKkhBTkRTSEFLRV9SRUpFQ1RfUkVBU09OX0hBTkRTSEFLRV9SRVFVSVJFRBACEjEKLUhBTkRTSEFLRV9SRUpFQ1RfUkVBU09OX0FVVEhFTlRJQ0FUSU9OX0ZBSUxFRBADKqICChBHYXRld2F5RXJyb3JDb2RlEiIKHkdBVEVXQVlfRVJST1JfQ09ERV9VTlNQRUNJRklFRBAAEiMKH0dBVEVXQVlfRVJST1JfQ09ERV9OT1RfRU5USVRMRUQQARImCiJHQVRFV0FZX0VSUk9SX0NPREVfSU5WQUxJRF9SRVFVRVNUEAISIgoeR0FURVdBWV9FUlJPUl9DT0RFX1VOQVZBSUxBQkxFEAMSHwobR0FURVdBWV9FUlJPUl9DT0RFX0lOVEVSTkFMEAQSLAooR0FURVdBWV9FUlJPUl9DT0RFX1NFU1NJT05fTElNSVRfUkVBQ0hFRBAFEioKJkdBVEVXQVlfRVJST1JfQ09ERV9GQUlMRURfUFJFQ09ORElUSU9OEAZCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_acl, file_kusinta_iot_accountlink_v1_account_link, file_kusinta_iot_climate_v1_climate, file_kusinta_iot_commissioning_v1_commissioning, file_kusinta_iot_common_v1_pairing, file_kusinta_iot_common_v1_types, file_kusinta_iot_device_v1_device_event, file_kusinta_iot_heating_v1_heating, 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_household, 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]);
31
31
 
32
32
  /**
33
33
  * Describes the message kusinta.iot.webrtc.v1.Ping.
@@ -176,11 +176,25 @@ export const GatewayMessageSchema = /*@__PURE__*/
176
176
  export const AppMessageSchema = /*@__PURE__*/
177
177
  messageDesc(file_kusinta_iot_webrtc_v1_envelope, 20);
178
178
 
179
+ /**
180
+ * Describes the enum kusinta.iot.webrtc.v1.HandshakeRejectReason.
181
+ */
182
+ export const HandshakeRejectReasonSchema = /*@__PURE__*/
183
+ enumDesc(file_kusinta_iot_webrtc_v1_envelope, 0);
184
+
185
+ /**
186
+ * Why a handshake was refused (HandshakeRejected.code).
187
+ *
188
+ * @generated from enum kusinta.iot.webrtc.v1.HandshakeRejectReason
189
+ */
190
+ export const HandshakeRejectReason = /*@__PURE__*/
191
+ tsEnum(HandshakeRejectReasonSchema);
192
+
179
193
  /**
180
194
  * Describes the enum kusinta.iot.webrtc.v1.GatewayErrorCode.
181
195
  */
182
196
  export const GatewayErrorCodeSchema = /*@__PURE__*/
183
- enumDesc(file_kusinta_iot_webrtc_v1_envelope, 0);
197
+ enumDesc(file_kusinta_iot_webrtc_v1_envelope, 1);
184
198
 
185
199
  /**
186
200
  * Machine-readable classification of a session-level gateway error, so the app