@trillboards/api-client 1.2.0 → 1.2.2

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.
@@ -431,7 +431,11 @@ type CreatePartnerSensingRouteRequest = {
431
431
  profileName?: string;
432
432
  /** Screens to watch — all owned by this partner (foreign → 403). Provide EITHER screenMongoIds OR targetGroupId, not both. */
433
433
  screenMongoIds?: Array<string>;
434
+ /** DEPRECATED and rejected on write with 400. A duration expressed as N readings inside a fixed window can only be satisfied by a screen reporting faster than window/(N-1) seconds, and nothing knows that rate when the route is saved - so the route saves cleanly and then never fires at all. Send sustainSeconds instead. Still honoured for rows that already carry it. */
434
435
  sustainMinSamples?: number;
436
+ /** How long the condition must hold before the FIRST alert, in seconds (600 = ten minutes). Omit to alert on the first true reading. Cadence-independent, because the evaluator compares timestamps - correct however often the screen reports, including when that rate changes while the condition holds. */
437
+ sustainSeconds?: number;
438
+ /** DEPRECATED and rejected on write with 400. A duration expressed as N readings inside a fixed window can only be satisfied by a screen reporting faster than window/(N-1) seconds, and nothing knows that rate when the route is saved - so the route saves cleanly and then never fires at all. Send sustainSeconds instead. Still honoured for rows that already carry it. */
435
439
  sustainWindowSeconds?: number;
436
440
  /** A sg_ Screen Group id (owned by this partner) to target instead of an explicit screen set. The route fires on the group's live members. Requires SENSING_ROUTES_GROUP_TARGET_ENABLED. */
437
441
  targetGroupId?: string;
@@ -1000,7 +1004,7 @@ type MeasurementMethodology = {
1000
1004
  canonical_path?: string;
1001
1005
  /** What each screen observes and what is dropped at the edge. */
1002
1006
  capture_stack?: Record<string, unknown>;
1003
- /** Cross-day identity, including measured coverage (~31%). */
1007
+ /** Cross-day identity, including measured coverage (1.6% of identifiable BLE rows). An earlier revision said ~31%; that graded the presence of stable_payload_hash and ignored the sanitizer the identity expression applies, and it is withdrawn. */
1004
1008
  cross_day_matching?: Record<string, unknown>;
1005
1009
  display_exposure_zone?: Record<string, unknown>;
1006
1010
  dwell_qualification_thresholds?: Record<string, unknown>;
@@ -1010,6 +1014,8 @@ type MeasurementMethodology = {
1010
1014
  fallback_path?: string;
1011
1015
  /** How identifiers are keyed, and what erasure means. */
1012
1016
  hashing?: Record<string, unknown>;
1017
+ /** The counting UNIT. Reach and unique-device counts are counts of BLE identifiers, not devices and not people; one device contributes several identifiers per window and the number grows with the window. Carries the measured identifiers-per-device per fleet type and the controlled comparison it was derived from. */
1018
+ identifier_inflation?: Record<string, unknown>;
1013
1019
  mrc_ooh_phase2_alignment: Record<string, unknown>;
1014
1020
  parser_versions?: Record<string, unknown>;
1015
1021
  /** k-anonymity floor and differential-privacy budget. */
@@ -1967,7 +1973,11 @@ type SensingRoute = {
1967
1973
  profileName?: string | null;
1968
1974
  routeId?: string;
1969
1975
  screenMongoIds?: Array<string>;
1976
+ /** DEPRECATED and rejected on write with 400. A duration expressed as N readings inside a fixed window can only be satisfied by a screen reporting faster than window/(N-1) seconds, and nothing knows that rate when the route is saved - so the route saves cleanly and then never fires at all. Send sustainSeconds instead. Still honoured for rows that already carry it. */
1970
1977
  sustainMinSamples?: number;
1978
+ /** How long the condition must hold before the FIRST alert, in seconds (600 = ten minutes). Omit to alert on the first true reading. Cadence-independent, because the evaluator compares timestamps - correct however often the screen reports, including when that rate changes while the condition holds. */
1979
+ sustainSeconds?: number | null;
1980
+ /** DEPRECATED and rejected on write with 400. A duration expressed as N readings inside a fixed window can only be satisfied by a screen reporting faster than window/(N-1) seconds, and nothing knows that rate when the route is saved - so the route saves cleanly and then never fires at all. Send sustainSeconds instead. Still honoured for rows that already carry it. */
1971
1981
  sustainWindowSeconds?: number;
1972
1982
  /** The sg_ Screen Group this route targets. When set, the route fires on the group's LIVE members (screenMongoIds reflects the resolved members at read time) and no explicit screens are stored. */
1973
1983
  targetGroupId?: string | null;
@@ -2138,7 +2148,11 @@ type UpdatePartnerSensingRouteRequest = {
2138
2148
  name?: string;
2139
2149
  profileName?: string | null;
2140
2150
  screenMongoIds?: Array<string>;
2151
+ /** DEPRECATED and rejected on write with 400. A duration expressed as N readings inside a fixed window can only be satisfied by a screen reporting faster than window/(N-1) seconds, and nothing knows that rate when the route is saved - so the route saves cleanly and then never fires at all. Send sustainSeconds instead. Still honoured for rows that already carry it. */
2141
2152
  sustainMinSamples?: number;
2153
+ /** How long the condition must hold before the FIRST alert, in seconds (600 = ten minutes). Omit to alert on the first true reading. Cadence-independent, because the evaluator compares timestamps - correct however often the screen reports, including when that rate changes while the condition holds. */
2154
+ sustainSeconds?: number;
2155
+ /** DEPRECATED and rejected on write with 400. A duration expressed as N readings inside a fixed window can only be satisfied by a screen reporting faster than window/(N-1) seconds, and nothing knows that rate when the route is saved - so the route saves cleanly and then never fires at all. Send sustainSeconds instead. Still honoured for rows that already carry it. */
2142
2156
  sustainWindowSeconds?: number;
2143
2157
  /** Set to a sg_ group id to (re)target the group's live members, or null to switch back to an explicit screenMongoIds set. Mutually exclusive with screenMongoIds in one request. */
2144
2158
  targetGroupId?: string | null;
@@ -431,7 +431,11 @@ type CreatePartnerSensingRouteRequest = {
431
431
  profileName?: string;
432
432
  /** Screens to watch — all owned by this partner (foreign → 403). Provide EITHER screenMongoIds OR targetGroupId, not both. */
433
433
  screenMongoIds?: Array<string>;
434
+ /** DEPRECATED and rejected on write with 400. A duration expressed as N readings inside a fixed window can only be satisfied by a screen reporting faster than window/(N-1) seconds, and nothing knows that rate when the route is saved - so the route saves cleanly and then never fires at all. Send sustainSeconds instead. Still honoured for rows that already carry it. */
434
435
  sustainMinSamples?: number;
436
+ /** How long the condition must hold before the FIRST alert, in seconds (600 = ten minutes). Omit to alert on the first true reading. Cadence-independent, because the evaluator compares timestamps - correct however often the screen reports, including when that rate changes while the condition holds. */
437
+ sustainSeconds?: number;
438
+ /** DEPRECATED and rejected on write with 400. A duration expressed as N readings inside a fixed window can only be satisfied by a screen reporting faster than window/(N-1) seconds, and nothing knows that rate when the route is saved - so the route saves cleanly and then never fires at all. Send sustainSeconds instead. Still honoured for rows that already carry it. */
435
439
  sustainWindowSeconds?: number;
436
440
  /** A sg_ Screen Group id (owned by this partner) to target instead of an explicit screen set. The route fires on the group's live members. Requires SENSING_ROUTES_GROUP_TARGET_ENABLED. */
437
441
  targetGroupId?: string;
@@ -1000,7 +1004,7 @@ type MeasurementMethodology = {
1000
1004
  canonical_path?: string;
1001
1005
  /** What each screen observes and what is dropped at the edge. */
1002
1006
  capture_stack?: Record<string, unknown>;
1003
- /** Cross-day identity, including measured coverage (~31%). */
1007
+ /** Cross-day identity, including measured coverage (1.6% of identifiable BLE rows). An earlier revision said ~31%; that graded the presence of stable_payload_hash and ignored the sanitizer the identity expression applies, and it is withdrawn. */
1004
1008
  cross_day_matching?: Record<string, unknown>;
1005
1009
  display_exposure_zone?: Record<string, unknown>;
1006
1010
  dwell_qualification_thresholds?: Record<string, unknown>;
@@ -1010,6 +1014,8 @@ type MeasurementMethodology = {
1010
1014
  fallback_path?: string;
1011
1015
  /** How identifiers are keyed, and what erasure means. */
1012
1016
  hashing?: Record<string, unknown>;
1017
+ /** The counting UNIT. Reach and unique-device counts are counts of BLE identifiers, not devices and not people; one device contributes several identifiers per window and the number grows with the window. Carries the measured identifiers-per-device per fleet type and the controlled comparison it was derived from. */
1018
+ identifier_inflation?: Record<string, unknown>;
1013
1019
  mrc_ooh_phase2_alignment: Record<string, unknown>;
1014
1020
  parser_versions?: Record<string, unknown>;
1015
1021
  /** k-anonymity floor and differential-privacy budget. */
@@ -1967,7 +1973,11 @@ type SensingRoute = {
1967
1973
  profileName?: string | null;
1968
1974
  routeId?: string;
1969
1975
  screenMongoIds?: Array<string>;
1976
+ /** DEPRECATED and rejected on write with 400. A duration expressed as N readings inside a fixed window can only be satisfied by a screen reporting faster than window/(N-1) seconds, and nothing knows that rate when the route is saved - so the route saves cleanly and then never fires at all. Send sustainSeconds instead. Still honoured for rows that already carry it. */
1970
1977
  sustainMinSamples?: number;
1978
+ /** How long the condition must hold before the FIRST alert, in seconds (600 = ten minutes). Omit to alert on the first true reading. Cadence-independent, because the evaluator compares timestamps - correct however often the screen reports, including when that rate changes while the condition holds. */
1979
+ sustainSeconds?: number | null;
1980
+ /** DEPRECATED and rejected on write with 400. A duration expressed as N readings inside a fixed window can only be satisfied by a screen reporting faster than window/(N-1) seconds, and nothing knows that rate when the route is saved - so the route saves cleanly and then never fires at all. Send sustainSeconds instead. Still honoured for rows that already carry it. */
1971
1981
  sustainWindowSeconds?: number;
1972
1982
  /** The sg_ Screen Group this route targets. When set, the route fires on the group's LIVE members (screenMongoIds reflects the resolved members at read time) and no explicit screens are stored. */
1973
1983
  targetGroupId?: string | null;
@@ -2138,7 +2148,11 @@ type UpdatePartnerSensingRouteRequest = {
2138
2148
  name?: string;
2139
2149
  profileName?: string | null;
2140
2150
  screenMongoIds?: Array<string>;
2151
+ /** DEPRECATED and rejected on write with 400. A duration expressed as N readings inside a fixed window can only be satisfied by a screen reporting faster than window/(N-1) seconds, and nothing knows that rate when the route is saved - so the route saves cleanly and then never fires at all. Send sustainSeconds instead. Still honoured for rows that already carry it. */
2141
2152
  sustainMinSamples?: number;
2153
+ /** How long the condition must hold before the FIRST alert, in seconds (600 = ten minutes). Omit to alert on the first true reading. Cadence-independent, because the evaluator compares timestamps - correct however often the screen reports, including when that rate changes while the condition holds. */
2154
+ sustainSeconds?: number;
2155
+ /** DEPRECATED and rejected on write with 400. A duration expressed as N readings inside a fixed window can only be satisfied by a screen reporting faster than window/(N-1) seconds, and nothing knows that rate when the route is saved - so the route saves cleanly and then never fires at all. Send sustainSeconds instead. Still honoured for rows that already carry it. */
2142
2156
  sustainWindowSeconds?: number;
2143
2157
  /** Set to a sg_ group id to (re)target the group's live members, or null to switch back to an explicit screenMongoIds set. Mutually exclusive with screenMongoIds in one request. */
2144
2158
  targetGroupId?: string | null;