@kusinta/iot-schema 0.2.0-beta.56 → 0.2.0-beta.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kusinta/iot-schema",
3
- "version": "0.2.0-beta.56",
3
+ "version": "0.2.0-beta.57",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "files": [
@@ -592,6 +592,15 @@ export declare type CommissioningProfile = Message<"kusinta.iot.commissioning.v1
592
592
  * @generated from field: bool needs_withheld = 7;
593
593
  */
594
594
  needsWithheld: boolean;
595
+
596
+ /**
597
+ * For a home, how well the gateway's model of each room and each floor zone in it predicts
598
+ * it (see ModelFit): one per room or zone the gateway models. Empty for a space that is
599
+ * not a home, and for a home none of whose rooms or zones is modelled yet.
600
+ *
601
+ * @generated from field: repeated kusinta.iot.commissioning.v1.ModelFit model_fits = 8;
602
+ */
603
+ modelFits: ModelFit[];
595
604
  };
596
605
 
597
606
  /**
@@ -600,6 +609,50 @@ export declare type CommissioningProfile = Message<"kusinta.iot.commissioning.v1
600
609
  */
601
610
  export declare const CommissioningProfileSchema: GenMessage<CommissioningProfile>;
602
611
 
612
+ /**
613
+ * One room's or floor zone's model fit.
614
+ *
615
+ * @generated from message kusinta.iot.commissioning.v1.ModelFit
616
+ */
617
+ export declare type ModelFit = Message<"kusinta.iot.commissioning.v1.ModelFit"> & {
618
+ /**
619
+ * @generated from oneof kusinta.iot.commissioning.v1.ModelFit.subject
620
+ */
621
+ subject: {
622
+ /**
623
+ * @generated from field: kusinta.iot.identity.v1.SpaceId room_id = 1;
624
+ */
625
+ value: SpaceId;
626
+ case: "roomId";
627
+ } | {
628
+ /**
629
+ * A heating.v1 FloorZone's zone_id.
630
+ *
631
+ * @generated from field: string floor_zone_id = 2;
632
+ */
633
+ value: string;
634
+ case: "floorZoneId";
635
+ } | { case: undefined; value?: undefined };
636
+
637
+ /**
638
+ * @generated from field: kusinta.iot.commissioning.v1.ModelFitBand band = 3;
639
+ */
640
+ band: ModelFitBand;
641
+
642
+ /**
643
+ * Set with NOT_ENOUGH_DATA, and with POOR where a gap explains it.
644
+ *
645
+ * @generated from field: kusinta.iot.commissioning.v1.ModelFitGap gap = 4;
646
+ */
647
+ gap: ModelFitGap;
648
+ };
649
+
650
+ /**
651
+ * Describes the message kusinta.iot.commissioning.v1.ModelFit.
652
+ * Use `create(ModelFitSchema)` to create a new message.
653
+ */
654
+ export declare const ModelFitSchema: GenMessage<ModelFit>;
655
+
603
656
  /**
604
657
  * Whether a home is set up: every REQUIRED fact answered with a value at least once, and
605
658
  * every output bound in it passed OUTPUT_LEASE at least once on the device it is bound to.
@@ -1374,6 +1427,125 @@ export enum TestFailure {
1374
1427
  */
1375
1428
  export declare const TestFailureSchema: GenEnum<TestFailure>;
1376
1429
 
1430
+ /**
1431
+ * How well a model predicts its room or zone.
1432
+ *
1433
+ * @generated from enum kusinta.iot.commissioning.v1.ModelFitBand
1434
+ */
1435
+ export enum ModelFitBand {
1436
+ /**
1437
+ * @generated from enum value: MODEL_FIT_BAND_UNSPECIFIED = 0;
1438
+ */
1439
+ UNSPECIFIED = 0,
1440
+
1441
+ /**
1442
+ * Not judged yet: see ModelFit.gap.
1443
+ *
1444
+ * @generated from enum value: MODEL_FIT_BAND_NOT_ENOUGH_DATA = 1;
1445
+ */
1446
+ NOT_ENOUGH_DATA = 1,
1447
+
1448
+ /**
1449
+ * No better than assuming no change: the planner does not plan with it.
1450
+ *
1451
+ * @generated from enum value: MODEL_FIT_BAND_POOR = 2;
1452
+ */
1453
+ POOR = 2,
1454
+
1455
+ /**
1456
+ * Better than assuming no change.
1457
+ *
1458
+ * @generated from enum value: MODEL_FIT_BAND_FAIR = 3;
1459
+ */
1460
+ FAIR = 3,
1461
+
1462
+ /**
1463
+ * Clearly better than assuming no change.
1464
+ *
1465
+ * @generated from enum value: MODEL_FIT_BAND_GOOD = 4;
1466
+ */
1467
+ GOOD = 4,
1468
+ }
1469
+
1470
+ /**
1471
+ * Describes the enum kusinta.iot.commissioning.v1.ModelFitBand.
1472
+ */
1473
+ export declare const ModelFitBandSchema: GenEnum<ModelFitBand>;
1474
+
1475
+ /**
1476
+ * What keeps a model from being judged, or from fitting at all: a client says what to do
1477
+ * about it. Read by a client that does not know a value as UNSPECIFIED.
1478
+ *
1479
+ * @generated from enum kusinta.iot.commissioning.v1.ModelFitGap
1480
+ */
1481
+ export enum ModelFitGap {
1482
+ /**
1483
+ * None, or none the gateway names.
1484
+ *
1485
+ * @generated from enum value: MODEL_FIT_GAP_UNSPECIFIED = 0;
1486
+ */
1487
+ UNSPECIFIED = 0,
1488
+
1489
+ /**
1490
+ * The heating has not varied enough yet for the model to learn from: the room's target
1491
+ * has barely changed, or it is outside the heating season. Time fixes it.
1492
+ *
1493
+ * @generated from enum value: MODEL_FIT_GAP_NO_EXCITATION = 1;
1494
+ */
1495
+ NO_EXCITATION = 1,
1496
+
1497
+ /**
1498
+ * No heat source is set up as serving the room's radiators, or more than one is
1499
+ * (heating.v1): the model has no one supply and outdoor temperature to learn against.
1500
+ *
1501
+ * @generated from enum value: MODEL_FIT_GAP_NO_PLANT = 2;
1502
+ */
1503
+ NO_PLANT = 2,
1504
+
1505
+ /**
1506
+ * A floor zone's circuit has no return temperature: its pipe probes are not bound.
1507
+ *
1508
+ * @generated from enum value: MODEL_FIT_GAP_NO_RETURNS = 3;
1509
+ */
1510
+ NO_RETURNS = 3,
1511
+
1512
+ /**
1513
+ * A floor zone the gateway does not drive: there is nothing of its own to learn from.
1514
+ *
1515
+ * @generated from enum value: MODEL_FIT_GAP_NOT_GATEWAY_DRIVEN = 4;
1516
+ */
1517
+ NOT_GATEWAY_DRIVEN = 4,
1518
+
1519
+ /**
1520
+ * The fit came out physically impossible: usually a sensor in the wrong place or a
1521
+ * mapping of rooms to zones that does not match the house.
1522
+ *
1523
+ * @generated from enum value: MODEL_FIT_GAP_NOT_PHYSICAL = 5;
1524
+ */
1525
+ NOT_PHYSICAL = 5,
1526
+
1527
+ /**
1528
+ * A floor zone's return temperature is shared with other zones of its circuit, so it says
1529
+ * nothing of the zone alone: the zone needs a return probe of its own.
1530
+ *
1531
+ * @generated from enum value: MODEL_FIT_GAP_RETURNS_SHARED = 6;
1532
+ */
1533
+ RETURNS_SHARED = 6,
1534
+
1535
+ /**
1536
+ * The model is fitted, and its predictions have not yet been scored over enough nights to
1537
+ * be judged. Time fixes it.
1538
+ *
1539
+ * @generated from enum value: MODEL_FIT_GAP_TOO_FEW_NIGHTS = 7;
1540
+ */
1541
+ TOO_FEW_NIGHTS = 7,
1542
+ }
1543
+
1544
+ /**
1545
+ * Describes the enum kusinta.iot.commissioning.v1.ModelFitGap.
1546
+ */
1547
+ export declare const ModelFitGapSchema: GenEnum<ModelFitGap>;
1548
+
1377
1549
  /**
1378
1550
  * Where a commissioning grant stands (see the file comment, GRANTS). An ended grant has no
1379
1551
  * state: it is listed no more.
@@ -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("CjBrdXNpbnRhL2lvdC9jb21taXNzaW9uaW5nL3YxL2NvbW1pc3Npb25pbmcucHJvdG8SHGt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEizwEKClByb3ZlbmFuY2USMgoFcGFydHkYASABKA4yIy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlBhcnR5EjgKCGV2aWRlbmNlGAIgASgOMiYua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5FdmlkZW5jZRImCgJhdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKwoCYnkYBCABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQiLgoKQmluZGluZ1JlZhIRCglyZWNvcmRfaWQYASABKAkSDQoFZmllbGQYAiABKAkiMwoLVGVtcGxhdGVSZWYSEwoLdGVtcGxhdGVfaWQYASABKAkSDwoHdmVyc2lvbhgCIAEoDSL0BAoRQ29tbWlzc2lvbmluZ0ZhY3QSDwoHZmFjdF9pZBgBIAEoCRIyCghzcGFjZV9pZBgCIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSEQoJcmVjb3JkX2lkGAMgASgJEgsKA2tleRgEIAEoCRI2CgV2YWx1ZRgFIAEoCzIlLmt1c2ludGEuaW90LmRldmljZS52MS5BdHRyaWJ1dGVWYWx1ZUgAEhEKB3Vua25vd24YBiABKAhIABI1CghhbnN3ZXJlchgHIAEoDjIjLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuUGFydHkSOgoJbmVjZXNzaXR5GAggASgOMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5OZWNlc3NpdHkSNgoHZmVhdHVyZRgJIAEoDjIlLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZRI8Cgpwcm92ZW5hbmNlGAogASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Qcm92ZW5hbmNlEhAKCHJldmlzaW9uGA0gASgEEkAKDWRldmlhdGVzX2Zyb20YDyABKAsyKS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlbXBsYXRlUmVmEjYKBXRvcGljGBAgASgOMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5GYWN0VG9waWNCCAoGYW5zd2VySgQICxANSgQIDhAPUgVzY29wZVIQdGVtcGxhdGVfdmVyc2lvblILdGVtcGxhdGVfaWQiegoMVGVtcGxhdGVGYWN0EgsKA2tleRgBIAEoCRIVCg1zdWJqZWN0X2xhYmVsGAIgASgJEjQKBXZhbHVlGAMgASgLMiUua3VzaW50YS5pb3QuZGV2aWNlLnYxLkF0dHJpYnV0ZVZhbHVlSgQIBBAFUgpwcm92ZW5hbmNlIvMBCg1Ib3VzZVRlbXBsYXRlEhMKC3RlbXBsYXRlX2lkGAEgASgJEjUKC2J1aWxkaW5nX2lkGAIgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIMCgRuYW1lGAMgASgJEg8KB3ZlcnNpb24YBCABKA0SOQoFZmFjdHMYBSADKAsyKi5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlbXBsYXRlRmFjdBI8Cgpwcm92ZW5hbmNlGAYgASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Qcm92ZW5hbmNlItsCCgROZWVkEhIKCGZhY3Rfa2V5GAEgASgJSAASNgoEdGVzdBgCIAEoDjImLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuVGVzdEtpbmRIABIyCghzcGFjZV9pZBgDIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNQoIYW5zd2VyZXIYBSABKA4yIy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlBhcnR5EjkKB2JpbmRpbmcYByABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWYSOwoKZmFjdF90b3BpYxgIIAEoDjInLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmFjdFRvcGljQgYKBHdoYXRKBAgEEAVKBAgGEAdSCXJlY29yZF9pZFIFZmllbGQi2AEKDEZlYXR1cmVCbG9jaxI5CgZyZWFzb24YASABKA4yKS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJsb2NrUmVhc29uEjQKCWRldmljZV9pZBgDIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjkKB2JpbmRpbmcYBSABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWZKBAgCEANKBAgEEAVSCXJlY29yZF9pZFIFZmllbGQi8QEKDUZlYXR1cmVTdGF0dXMSNgoHZmVhdHVyZRgBIAEoDjIlLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZRI5CgVzdGF0ZRgCIAEoDjIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZVN0YXRlEjEKBW5lZWRzGAMgAygLMiIua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5OZWVkEjoKBmJsb2NrcxgEIAMoCzIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZUJsb2NrIqYFChFDb21taXNzaW9uaW5nVGVzdBIPCgd0ZXN0X2lkGAEgASgJEjQKBGtpbmQYAiABKA4yJi5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlc3RLaW5kEjkKB2JpbmRpbmcYDSABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWYSNAoJZGV2aWNlX2lkGAUgASgLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSNgoFc3RhdGUYBiABKA4yJy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlc3RTdGF0ZRI6CgdmYWlsdXJlGAcgASgOMikua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5UZXN0RmFpbHVyZRIuCgpzdGFydGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgdlbmRzX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtmaW5pc2hlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPAoKcHJvdmVuYW5jZRgLIAEoCzIoLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuUHJvdmVuYW5jZRISCgpzdXBlcnNlZGVkGAwgASgIEi8KC2NvbmNsdWRlX2J5GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI8CghldmlkZW5jZRgPIAMoCzIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuVGVzdEV2aWRlbmNlSgQIAxAFUglyZWNvcmRfaWRSBWZpZWxkIl8KDFRlc3RFdmlkZW5jZRIPCgdyZWFkaW5nGAEgASgJEg0KBXZhbHVlGAIgASgSEi8KC29ic2VydmVkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLzAgoUQ29tbWlzc2lvbmluZ1Byb2ZpbGUSMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEj4KBWZhY3RzGAIgAygLMi8ua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Db21taXNzaW9uaW5nRmFjdBI+CgV0ZXN0cxgDIAMoCzIvLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1Rlc3QSPQoIZmVhdHVyZXMYBCADKAsyKy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkZlYXR1cmVTdGF0dXMSPQoIdGVtcGxhdGUYBiABKAsyKy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkhvdXNlVGVtcGxhdGUSFgoObmVlZHNfd2l0aGhlbGQYByABKAhKBAgFEAZSC3RlbXBsYXRlX2lkIk4KCUhvbWVTZXR1cBIxCgdob21lX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIOCgZzZXRfdXAYAiABKAgiRAoKSG9tZVNldHVwcxI2CgVob21lcxgBIAMoCzInLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuSG9tZVNldHVwIuIBChNDb21taXNzaW9uaW5nUmVjb3JkEj8KBGZhY3QYASABKAsyLy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdGYWN0SAASPwoEdGVzdBgCIAEoCzIvLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1Rlc3RIABI/Cgh0ZW1wbGF0ZRgDIAEoCzIrLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuSG91c2VUZW1wbGF0ZUgAQggKBnJlY29yZCKPBAoSQ29tbWlzc2lvbmluZ0dyYW50EhAKCGdyYW50X2lkGAEgASgJEjIKCHNwYWNlX2lkGAIgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIyCglpbnN0YWxsZXIYAyABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSFgoOaW5zdGFsbGVyX25hbWUYBCABKAkSRAoFc3RhdGUYBSABKA4yNS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdHcmFudFN0YXRlEjAKDHJlcXVlc3RlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKZXhwaXJlc19hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJc3RhcnRzX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgdlbmRzX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCgpncmFudGVkX2J5GAogASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEi4KCmdyYW50ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIosBChNDb21taXNzaW9uaW5nR3JhbnRzEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBJACgZncmFudHMYAiADKAsyMC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdHcmFudCK/AQoYQ29tbWlzc2lvbmluZ0dyYW50UmVjb3JkEhYKDmluc3RhbGxlcl9uYW1lGAEgASgJEi4KCmdyYW50ZWRfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi0KCXN0YXJ0c19hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLAoIZW5kZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKnsKBVBhcnR5EhUKEVBBUlRZX1VOU1BFQ0lGSUVEEAASHAoYUEFSVFlfT1dORVJfT1JHQU5JU0FUSU9OEAESEwoPUEFSVFlfSE9VU0VIT0xEEAISEwoPUEFSVFlfSU5TVEFMTEVSEAMSEwoPUEFSVFlfQVVUT01BVElDEAQqcQoJTmVjZXNzaXR5EhkKFU5FQ0VTU0lUWV9VTlNQRUNJRklFRBAAEhYKEk5FQ0VTU0lUWV9SRVFVSVJFRBABEhkKFU5FQ0VTU0lUWV9GT1JfRkVBVFVSRRACEhYKEk5FQ0VTU0lUWV9PUFRJT05BTBADKqgBCghFdmlkZW5jZRIYChRFVklERU5DRV9VTlNQRUNJRklFRBAAEhMKD0VWSURFTkNFX1NUQVRFRBABEhIKDkVWSURFTkNFX1BIT1RPEAISFAoQRVZJREVOQ0VfRFJBV0lORxADEhYKEkVWSURFTkNFX0lOU1BFQ1RFRBAEEhUKEUVWSURFTkNFX01FQVNVUkVEEAUSFAoQRVZJREVOQ0VfREVSSVZFRBAGKqACCglGYWN0VG9waWMSGgoWRkFDVF9UT1BJQ19VTlNQRUNJRklFRBAAEhcKE0ZBQ1RfVE9QSUNfQlVJTERJTkcQARIUChBGQUNUX1RPUElDX1JPT01TEAISGgoWRkFDVF9UT1BJQ19IRUFUX1NPVVJDRRADEhwKGEZBQ1RfVE9QSUNfRkxPT1JfSEVBVElORxAEEhwKGEZBQ1RfVE9QSUNfQ09NRk9SVF9MT0FEUxAFEhoKFkZBQ1RfVE9QSUNfRUxFQ1RSSUNJVFkQBhIfChtGQUNUX1RPUElDX0RJU1RSSUNUX0hFQVRJTkcQBxIbChdGQUNUX1RPUElDX0NPTk5FQ1RJVklUWRAIEhYKEkZBQ1RfVE9QSUNfQ09NRk9SVBAJKqkBCgdGZWF0dXJlEhcKE0ZFQVRVUkVfVU5TUEVDSUZJRUQQABIXChNGRUFUVVJFX0ZMT09SX1pPTkVTEAESEQoNRkVBVFVSRV9QTEFOVBACEhkKFUZFQVRVUkVfQ09NRk9SVF9MT0FEUxADEhAKDEZFQVRVUkVfQ09TVBAEEhYKEkZFQVRVUkVfUEVBS19HVUFSRBAFEhQKEEZFQVRVUkVfUExBTk5JTkcQBiqFAQoMRmVhdHVyZVN0YXRlEh0KGUZFQVRVUkVfU1RBVEVfVU5TUEVDSUZJRUQQABIXChNGRUFUVVJFX1NUQVRFX1dPUktTEAESFwoTRkVBVFVSRV9TVEFURV9ORUVEUxACEiQKIEZFQVRVUkVfU1RBVEVfQkxPQ0tFRF9GT1JfU0FGRVRZEAMqnAIKC0Jsb2NrUmVhc29uEhwKGEJMT0NLX1JFQVNPTl9VTlNQRUNJRklFRBAAEhwKGEJMT0NLX1JFQVNPTl9URVNUX0ZBSUxFRBABEiIKHkJMT0NLX1JFQVNPTl9PVVRQVVRfTk9UX0xFQVNFRBACEiUKIUJMT0NLX1JFQVNPTl9QT1dFUl9PTl9OT1RfQVRfUkVTVBADEhwKGEJMT0NLX1JFQVNPTl9ERVZJQ0VfR09ORRAEEiIKHkJMT0NLX1JFQVNPTl9DT05UUk9MX1JPT01fR09ORRAFEh8KG0JMT0NLX1JFQVNPTl9MRUFTRV9UT09fTE9ORxAGEiMKH0JMT0NLX1JFQVNPTl9ERVZJQ0VfQUNST1NTX0hPTUUQByp+CghUZXN0S2luZBIZChVURVNUX0tJTkRfVU5TUEVDSUZJRUQQABIaChZURVNUX0tJTkRfT1VUUFVUX0xFQVNFEAESGQoVVEVTVF9LSU5EX1pPTkVfRUZGRUNUEAISIAocVEVTVF9LSU5EX1BVTVBfQUxMX1pPTkVTX09GRhADKoUBCglUZXN0U3RhdGUSGgoWVEVTVF9TVEFURV9VTlNQRUNJRklFRBAAEhYKElRFU1RfU1RBVEVfUlVOTklORxABEhUKEVRFU1RfU1RBVEVfUEFTU0VEEAISFQoRVEVTVF9TVEFURV9GQUlMRUQQAxIWChJURVNUX1NUQVRFX0FCT1JURUQQBCqdAgoLVGVzdEZhaWx1cmUSHAoYVEVTVF9GQUlMVVJFX1VOU1BFQ0lGSUVEEAASJQohVEVTVF9GQUlMVVJFX1BPV0VSX09OX05PVF9BVF9SRVNUEAESIAocVEVTVF9GQUlMVVJFX05PX1NUQVRFX0NIQU5HRRACEiIKHlRFU1RfRkFJTFVSRV9MRUFTRV9OT1RfUkVORVdFRBADEicKI1RFU1RfRkFJTFVSRV9ESURfTk9UX1JFVFVSTl9UT19SRVNUEAQSIwofVEVTVF9GQUlMVVJFX0RFVklDRV9VTlJFQUNIQUJMRRAFEhoKFlRFU1RfRkFJTFVSRV9OT19FRkZFQ1QQBhIZChVURVNUX0ZBSUxVUkVfT0JTRVJWRUQQByqUAQoXQ29tbWlzc2lvbmluZ0dyYW50U3RhdGUSKQolQ09NTUlTU0lPTklOR19HUkFOVF9TVEFURV9VTlNQRUNJRklFRBAAEicKI0NPTU1JU1NJT05JTkdfR1JBTlRfU1RBVEVfUkVRVUVTVEVEEAESJQohQ09NTUlTU0lPTklOR19HUkFOVF9TVEFURV9HUkFOVEVEEAJCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_device_v1_cluster_state, file_kusinta_iot_identity_v1_identity]);
14
+ fileDesc("CjBrdXNpbnRhL2lvdC9jb21taXNzaW9uaW5nL3YxL2NvbW1pc3Npb25pbmcucHJvdG8SHGt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEizwEKClByb3ZlbmFuY2USMgoFcGFydHkYASABKA4yIy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlBhcnR5EjgKCGV2aWRlbmNlGAIgASgOMiYua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5FdmlkZW5jZRImCgJhdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKwoCYnkYBCABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQiLgoKQmluZGluZ1JlZhIRCglyZWNvcmRfaWQYASABKAkSDQoFZmllbGQYAiABKAkiMwoLVGVtcGxhdGVSZWYSEwoLdGVtcGxhdGVfaWQYASABKAkSDwoHdmVyc2lvbhgCIAEoDSL0BAoRQ29tbWlzc2lvbmluZ0ZhY3QSDwoHZmFjdF9pZBgBIAEoCRIyCghzcGFjZV9pZBgCIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSEQoJcmVjb3JkX2lkGAMgASgJEgsKA2tleRgEIAEoCRI2CgV2YWx1ZRgFIAEoCzIlLmt1c2ludGEuaW90LmRldmljZS52MS5BdHRyaWJ1dGVWYWx1ZUgAEhEKB3Vua25vd24YBiABKAhIABI1CghhbnN3ZXJlchgHIAEoDjIjLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuUGFydHkSOgoJbmVjZXNzaXR5GAggASgOMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5OZWNlc3NpdHkSNgoHZmVhdHVyZRgJIAEoDjIlLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZRI8Cgpwcm92ZW5hbmNlGAogASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Qcm92ZW5hbmNlEhAKCHJldmlzaW9uGA0gASgEEkAKDWRldmlhdGVzX2Zyb20YDyABKAsyKS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlbXBsYXRlUmVmEjYKBXRvcGljGBAgASgOMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5GYWN0VG9waWNCCAoGYW5zd2VySgQICxANSgQIDhAPUgVzY29wZVIQdGVtcGxhdGVfdmVyc2lvblILdGVtcGxhdGVfaWQiegoMVGVtcGxhdGVGYWN0EgsKA2tleRgBIAEoCRIVCg1zdWJqZWN0X2xhYmVsGAIgASgJEjQKBXZhbHVlGAMgASgLMiUua3VzaW50YS5pb3QuZGV2aWNlLnYxLkF0dHJpYnV0ZVZhbHVlSgQIBBAFUgpwcm92ZW5hbmNlIvMBCg1Ib3VzZVRlbXBsYXRlEhMKC3RlbXBsYXRlX2lkGAEgASgJEjUKC2J1aWxkaW5nX2lkGAIgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIMCgRuYW1lGAMgASgJEg8KB3ZlcnNpb24YBCABKA0SOQoFZmFjdHMYBSADKAsyKi5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlbXBsYXRlRmFjdBI8Cgpwcm92ZW5hbmNlGAYgASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Qcm92ZW5hbmNlItsCCgROZWVkEhIKCGZhY3Rfa2V5GAEgASgJSAASNgoEdGVzdBgCIAEoDjImLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuVGVzdEtpbmRIABIyCghzcGFjZV9pZBgDIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNQoIYW5zd2VyZXIYBSABKA4yIy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlBhcnR5EjkKB2JpbmRpbmcYByABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWYSOwoKZmFjdF90b3BpYxgIIAEoDjInLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmFjdFRvcGljQgYKBHdoYXRKBAgEEAVKBAgGEAdSCXJlY29yZF9pZFIFZmllbGQi2AEKDEZlYXR1cmVCbG9jaxI5CgZyZWFzb24YASABKA4yKS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJsb2NrUmVhc29uEjQKCWRldmljZV9pZBgDIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjkKB2JpbmRpbmcYBSABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWZKBAgCEANKBAgEEAVSCXJlY29yZF9pZFIFZmllbGQi8QEKDUZlYXR1cmVTdGF0dXMSNgoHZmVhdHVyZRgBIAEoDjIlLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZRI5CgVzdGF0ZRgCIAEoDjIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZVN0YXRlEjEKBW5lZWRzGAMgAygLMiIua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5OZWVkEjoKBmJsb2NrcxgEIAMoCzIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZUJsb2NrIqYFChFDb21taXNzaW9uaW5nVGVzdBIPCgd0ZXN0X2lkGAEgASgJEjQKBGtpbmQYAiABKA4yJi5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlc3RLaW5kEjkKB2JpbmRpbmcYDSABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWYSNAoJZGV2aWNlX2lkGAUgASgLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSNgoFc3RhdGUYBiABKA4yJy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlc3RTdGF0ZRI6CgdmYWlsdXJlGAcgASgOMikua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5UZXN0RmFpbHVyZRIuCgpzdGFydGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgdlbmRzX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtmaW5pc2hlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPAoKcHJvdmVuYW5jZRgLIAEoCzIoLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuUHJvdmVuYW5jZRISCgpzdXBlcnNlZGVkGAwgASgIEi8KC2NvbmNsdWRlX2J5GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI8CghldmlkZW5jZRgPIAMoCzIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuVGVzdEV2aWRlbmNlSgQIAxAFUglyZWNvcmRfaWRSBWZpZWxkIl8KDFRlc3RFdmlkZW5jZRIPCgdyZWFkaW5nGAEgASgJEg0KBXZhbHVlGAIgASgSEi8KC29ic2VydmVkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKvAwoUQ29tbWlzc2lvbmluZ1Byb2ZpbGUSMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEj4KBWZhY3RzGAIgAygLMi8ua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Db21taXNzaW9uaW5nRmFjdBI+CgV0ZXN0cxgDIAMoCzIvLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1Rlc3QSPQoIZmVhdHVyZXMYBCADKAsyKy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkZlYXR1cmVTdGF0dXMSPQoIdGVtcGxhdGUYBiABKAsyKy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkhvdXNlVGVtcGxhdGUSFgoObmVlZHNfd2l0aGhlbGQYByABKAgSOgoKbW9kZWxfZml0cxgIIAMoCzImLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuTW9kZWxGaXRKBAgFEAZSC3RlbXBsYXRlX2lkItUBCghNb2RlbEZpdBIzCgdyb29tX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZEgAEhcKDWZsb29yX3pvbmVfaWQYAiABKAlIABI4CgRiYW5kGAMgASgOMioua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Nb2RlbEZpdEJhbmQSNgoDZ2FwGAQgASgOMikua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Nb2RlbEZpdEdhcEIJCgdzdWJqZWN0Ik4KCUhvbWVTZXR1cBIxCgdob21lX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIOCgZzZXRfdXAYAiABKAgiRAoKSG9tZVNldHVwcxI2CgVob21lcxgBIAMoCzInLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuSG9tZVNldHVwIuIBChNDb21taXNzaW9uaW5nUmVjb3JkEj8KBGZhY3QYASABKAsyLy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdGYWN0SAASPwoEdGVzdBgCIAEoCzIvLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1Rlc3RIABI/Cgh0ZW1wbGF0ZRgDIAEoCzIrLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuSG91c2VUZW1wbGF0ZUgAQggKBnJlY29yZCKPBAoSQ29tbWlzc2lvbmluZ0dyYW50EhAKCGdyYW50X2lkGAEgASgJEjIKCHNwYWNlX2lkGAIgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIyCglpbnN0YWxsZXIYAyABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSFgoOaW5zdGFsbGVyX25hbWUYBCABKAkSRAoFc3RhdGUYBSABKA4yNS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdHcmFudFN0YXRlEjAKDHJlcXVlc3RlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKZXhwaXJlc19hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJc3RhcnRzX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgdlbmRzX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCgpncmFudGVkX2J5GAogASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEi4KCmdyYW50ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIosBChNDb21taXNzaW9uaW5nR3JhbnRzEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBJACgZncmFudHMYAiADKAsyMC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdHcmFudCK/AQoYQ29tbWlzc2lvbmluZ0dyYW50UmVjb3JkEhYKDmluc3RhbGxlcl9uYW1lGAEgASgJEi4KCmdyYW50ZWRfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi0KCXN0YXJ0c19hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLAoIZW5kZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKnsKBVBhcnR5EhUKEVBBUlRZX1VOU1BFQ0lGSUVEEAASHAoYUEFSVFlfT1dORVJfT1JHQU5JU0FUSU9OEAESEwoPUEFSVFlfSE9VU0VIT0xEEAISEwoPUEFSVFlfSU5TVEFMTEVSEAMSEwoPUEFSVFlfQVVUT01BVElDEAQqcQoJTmVjZXNzaXR5EhkKFU5FQ0VTU0lUWV9VTlNQRUNJRklFRBAAEhYKEk5FQ0VTU0lUWV9SRVFVSVJFRBABEhkKFU5FQ0VTU0lUWV9GT1JfRkVBVFVSRRACEhYKEk5FQ0VTU0lUWV9PUFRJT05BTBADKqgBCghFdmlkZW5jZRIYChRFVklERU5DRV9VTlNQRUNJRklFRBAAEhMKD0VWSURFTkNFX1NUQVRFRBABEhIKDkVWSURFTkNFX1BIT1RPEAISFAoQRVZJREVOQ0VfRFJBV0lORxADEhYKEkVWSURFTkNFX0lOU1BFQ1RFRBAEEhUKEUVWSURFTkNFX01FQVNVUkVEEAUSFAoQRVZJREVOQ0VfREVSSVZFRBAGKqACCglGYWN0VG9waWMSGgoWRkFDVF9UT1BJQ19VTlNQRUNJRklFRBAAEhcKE0ZBQ1RfVE9QSUNfQlVJTERJTkcQARIUChBGQUNUX1RPUElDX1JPT01TEAISGgoWRkFDVF9UT1BJQ19IRUFUX1NPVVJDRRADEhwKGEZBQ1RfVE9QSUNfRkxPT1JfSEVBVElORxAEEhwKGEZBQ1RfVE9QSUNfQ09NRk9SVF9MT0FEUxAFEhoKFkZBQ1RfVE9QSUNfRUxFQ1RSSUNJVFkQBhIfChtGQUNUX1RPUElDX0RJU1RSSUNUX0hFQVRJTkcQBxIbChdGQUNUX1RPUElDX0NPTk5FQ1RJVklUWRAIEhYKEkZBQ1RfVE9QSUNfQ09NRk9SVBAJKqkBCgdGZWF0dXJlEhcKE0ZFQVRVUkVfVU5TUEVDSUZJRUQQABIXChNGRUFUVVJFX0ZMT09SX1pPTkVTEAESEQoNRkVBVFVSRV9QTEFOVBACEhkKFUZFQVRVUkVfQ09NRk9SVF9MT0FEUxADEhAKDEZFQVRVUkVfQ09TVBAEEhYKEkZFQVRVUkVfUEVBS19HVUFSRBAFEhQKEEZFQVRVUkVfUExBTk5JTkcQBiqFAQoMRmVhdHVyZVN0YXRlEh0KGUZFQVRVUkVfU1RBVEVfVU5TUEVDSUZJRUQQABIXChNGRUFUVVJFX1NUQVRFX1dPUktTEAESFwoTRkVBVFVSRV9TVEFURV9ORUVEUxACEiQKIEZFQVRVUkVfU1RBVEVfQkxPQ0tFRF9GT1JfU0FGRVRZEAMqnAIKC0Jsb2NrUmVhc29uEhwKGEJMT0NLX1JFQVNPTl9VTlNQRUNJRklFRBAAEhwKGEJMT0NLX1JFQVNPTl9URVNUX0ZBSUxFRBABEiIKHkJMT0NLX1JFQVNPTl9PVVRQVVRfTk9UX0xFQVNFRBACEiUKIUJMT0NLX1JFQVNPTl9QT1dFUl9PTl9OT1RfQVRfUkVTVBADEhwKGEJMT0NLX1JFQVNPTl9ERVZJQ0VfR09ORRAEEiIKHkJMT0NLX1JFQVNPTl9DT05UUk9MX1JPT01fR09ORRAFEh8KG0JMT0NLX1JFQVNPTl9MRUFTRV9UT09fTE9ORxAGEiMKH0JMT0NLX1JFQVNPTl9ERVZJQ0VfQUNST1NTX0hPTUUQByp+CghUZXN0S2luZBIZChVURVNUX0tJTkRfVU5TUEVDSUZJRUQQABIaChZURVNUX0tJTkRfT1VUUFVUX0xFQVNFEAESGQoVVEVTVF9LSU5EX1pPTkVfRUZGRUNUEAISIAocVEVTVF9LSU5EX1BVTVBfQUxMX1pPTkVTX09GRhADKoUBCglUZXN0U3RhdGUSGgoWVEVTVF9TVEFURV9VTlNQRUNJRklFRBAAEhYKElRFU1RfU1RBVEVfUlVOTklORxABEhUKEVRFU1RfU1RBVEVfUEFTU0VEEAISFQoRVEVTVF9TVEFURV9GQUlMRUQQAxIWChJURVNUX1NUQVRFX0FCT1JURUQQBCqdAgoLVGVzdEZhaWx1cmUSHAoYVEVTVF9GQUlMVVJFX1VOU1BFQ0lGSUVEEAASJQohVEVTVF9GQUlMVVJFX1BPV0VSX09OX05PVF9BVF9SRVNUEAESIAocVEVTVF9GQUlMVVJFX05PX1NUQVRFX0NIQU5HRRACEiIKHlRFU1RfRkFJTFVSRV9MRUFTRV9OT1RfUkVORVdFRBADEicKI1RFU1RfRkFJTFVSRV9ESURfTk9UX1JFVFVSTl9UT19SRVNUEAQSIwofVEVTVF9GQUlMVVJFX0RFVklDRV9VTlJFQUNIQUJMRRAFEhoKFlRFU1RfRkFJTFVSRV9OT19FRkZFQ1QQBhIZChVURVNUX0ZBSUxVUkVfT0JTRVJWRUQQByqdAQoMTW9kZWxGaXRCYW5kEh4KGk1PREVMX0ZJVF9CQU5EX1VOU1BFQ0lGSUVEEAASIgoeTU9ERUxfRklUX0JBTkRfTk9UX0VOT1VHSF9EQVRBEAESFwoTTU9ERUxfRklUX0JBTkRfUE9PUhACEhcKE01PREVMX0ZJVF9CQU5EX0ZBSVIQAxIXChNNT0RFTF9GSVRfQkFORF9HT09EEAQqkQIKC01vZGVsRml0R2FwEh0KGU1PREVMX0ZJVF9HQVBfVU5TUEVDSUZJRUQQABIfChtNT0RFTF9GSVRfR0FQX05PX0VYQ0lUQVRJT04QARIaChZNT0RFTF9GSVRfR0FQX05PX1BMQU5UEAISHAoYTU9ERUxfRklUX0dBUF9OT19SRVRVUk5TEAMSJAogTU9ERUxfRklUX0dBUF9OT1RfR0FURVdBWV9EUklWRU4QBBIeChpNT0RFTF9GSVRfR0FQX05PVF9QSFlTSUNBTBAFEiAKHE1PREVMX0ZJVF9HQVBfUkVUVVJOU19TSEFSRUQQBhIgChxNT0RFTF9GSVRfR0FQX1RPT19GRVdfTklHSFRTEAcqlAEKF0NvbW1pc3Npb25pbmdHcmFudFN0YXRlEikKJUNPTU1JU1NJT05JTkdfR1JBTlRfU1RBVEVfVU5TUEVDSUZJRUQQABInCiNDT01NSVNTSU9OSU5HX0dSQU5UX1NUQVRFX1JFUVVFU1RFRBABEiUKIUNPTU1JU1NJT05JTkdfR1JBTlRfU1RBVEVfR1JBTlRFRBACQgJIAWIGcHJvdG8z", [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.
@@ -97,47 +97,54 @@ export const TestEvidenceSchema = /*@__PURE__*/
97
97
  export const CommissioningProfileSchema = /*@__PURE__*/
98
98
  messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 11);
99
99
 
100
+ /**
101
+ * Describes the message kusinta.iot.commissioning.v1.ModelFit.
102
+ * Use `create(ModelFitSchema)` to create a new message.
103
+ */
104
+ export const ModelFitSchema = /*@__PURE__*/
105
+ messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 12);
106
+
100
107
  /**
101
108
  * Describes the message kusinta.iot.commissioning.v1.HomeSetup.
102
109
  * Use `create(HomeSetupSchema)` to create a new message.
103
110
  */
104
111
  export const HomeSetupSchema = /*@__PURE__*/
105
- messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 12);
112
+ messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 13);
106
113
 
107
114
  /**
108
115
  * Describes the message kusinta.iot.commissioning.v1.HomeSetups.
109
116
  * Use `create(HomeSetupsSchema)` to create a new message.
110
117
  */
111
118
  export const HomeSetupsSchema = /*@__PURE__*/
112
- messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 13);
119
+ messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 14);
113
120
 
114
121
  /**
115
122
  * Describes the message kusinta.iot.commissioning.v1.CommissioningRecord.
116
123
  * Use `create(CommissioningRecordSchema)` to create a new message.
117
124
  */
118
125
  export const CommissioningRecordSchema = /*@__PURE__*/
119
- messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 14);
126
+ messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 15);
120
127
 
121
128
  /**
122
129
  * Describes the message kusinta.iot.commissioning.v1.CommissioningGrant.
123
130
  * Use `create(CommissioningGrantSchema)` to create a new message.
124
131
  */
125
132
  export const CommissioningGrantSchema = /*@__PURE__*/
126
- messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 15);
133
+ messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 16);
127
134
 
128
135
  /**
129
136
  * Describes the message kusinta.iot.commissioning.v1.CommissioningGrants.
130
137
  * Use `create(CommissioningGrantsSchema)` to create a new message.
131
138
  */
132
139
  export const CommissioningGrantsSchema = /*@__PURE__*/
133
- messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 16);
140
+ messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 17);
134
141
 
135
142
  /**
136
143
  * Describes the message kusinta.iot.commissioning.v1.CommissioningGrantRecord.
137
144
  * Use `create(CommissioningGrantRecordSchema)` to create a new message.
138
145
  */
139
146
  export const CommissioningGrantRecordSchema = /*@__PURE__*/
140
- messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 17);
147
+ messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 18);
141
148
 
142
149
  /**
143
150
  * Describes the enum kusinta.iot.commissioning.v1.Party.
@@ -272,11 +279,40 @@ export const TestFailureSchema = /*@__PURE__*/
272
279
  export const TestFailure = /*@__PURE__*/
273
280
  tsEnum(TestFailureSchema);
274
281
 
282
+ /**
283
+ * Describes the enum kusinta.iot.commissioning.v1.ModelFitBand.
284
+ */
285
+ export const ModelFitBandSchema = /*@__PURE__*/
286
+ enumDesc(file_kusinta_iot_commissioning_v1_commissioning, 10);
287
+
288
+ /**
289
+ * How well a model predicts its room or zone.
290
+ *
291
+ * @generated from enum kusinta.iot.commissioning.v1.ModelFitBand
292
+ */
293
+ export const ModelFitBand = /*@__PURE__*/
294
+ tsEnum(ModelFitBandSchema);
295
+
296
+ /**
297
+ * Describes the enum kusinta.iot.commissioning.v1.ModelFitGap.
298
+ */
299
+ export const ModelFitGapSchema = /*@__PURE__*/
300
+ enumDesc(file_kusinta_iot_commissioning_v1_commissioning, 11);
301
+
302
+ /**
303
+ * What keeps a model from being judged, or from fitting at all: a client says what to do
304
+ * about it. Read by a client that does not know a value as UNSPECIFIED.
305
+ *
306
+ * @generated from enum kusinta.iot.commissioning.v1.ModelFitGap
307
+ */
308
+ export const ModelFitGap = /*@__PURE__*/
309
+ tsEnum(ModelFitGapSchema);
310
+
275
311
  /**
276
312
  * Describes the enum kusinta.iot.commissioning.v1.CommissioningGrantState.
277
313
  */
278
314
  export const CommissioningGrantStateSchema = /*@__PURE__*/
279
- enumDesc(file_kusinta_iot_commissioning_v1_commissioning, 10);
315
+ enumDesc(file_kusinta_iot_commissioning_v1_commissioning, 12);
280
316
 
281
317
  /**
282
318
  * Where a commissioning grant stands (see the file comment, GRANTS). An ended grant has no