@seamapi/types 1.195.0 → 1.196.1

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.
@@ -7163,6 +7163,10 @@ declare const seam_event: z.ZodDiscriminatedUnion<"event_type", [z.ZodObject<{
7163
7163
  event_id: z.ZodString;
7164
7164
  occurred_at: z.ZodString;
7165
7165
  event_type: z.ZodLiteral<"noise_sensor.noise_threshold_triggered">;
7166
+ noise_level_decibels: z.ZodOptional<z.ZodNumber>;
7167
+ noise_level_nrs: z.ZodOptional<z.ZodNumber>;
7168
+ noise_threshold_id: z.ZodOptional<z.ZodString>;
7169
+ noise_threshold_name: z.ZodOptional<z.ZodString>;
7166
7170
  noiseaware_metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
7167
7171
  minut_metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
7168
7172
  }, "strip", z.ZodTypeAny, {
@@ -7173,6 +7177,10 @@ declare const seam_event: z.ZodDiscriminatedUnion<"event_type", [z.ZodObject<{
7173
7177
  event_id: string;
7174
7178
  occurred_at: string;
7175
7179
  event_type: "noise_sensor.noise_threshold_triggered";
7180
+ noise_level_decibels?: number | undefined;
7181
+ noise_level_nrs?: number | undefined;
7182
+ noise_threshold_id?: string | undefined;
7183
+ noise_threshold_name?: string | undefined;
7176
7184
  noiseaware_metadata?: Record<string, unknown> | undefined;
7177
7185
  minut_metadata?: Record<string, unknown> | undefined;
7178
7186
  }, {
@@ -7183,6 +7191,10 @@ declare const seam_event: z.ZodDiscriminatedUnion<"event_type", [z.ZodObject<{
7183
7191
  event_id: string;
7184
7192
  occurred_at: string;
7185
7193
  event_type: "noise_sensor.noise_threshold_triggered";
7194
+ noise_level_decibels?: number | undefined;
7195
+ noise_level_nrs?: number | undefined;
7196
+ noise_threshold_id?: string | undefined;
7197
+ noise_threshold_name?: string | undefined;
7186
7198
  noiseaware_metadata?: Record<string, unknown> | undefined;
7187
7199
  minut_metadata?: Record<string, unknown> | undefined;
7188
7200
  }>, z.ZodObject<{
@@ -7924,24 +7936,31 @@ declare const _default: {
7924
7936
  type: string;
7925
7937
  };
7926
7938
  acs_system: {
7939
+ description: string;
7927
7940
  properties: {
7928
7941
  acs_system_id: {
7942
+ description: string;
7929
7943
  format: string;
7930
7944
  type: string;
7931
7945
  };
7932
7946
  can_add_acs_users_to_acs_access_groups: {
7947
+ description: string;
7933
7948
  type: string;
7934
7949
  };
7935
7950
  can_automate_enrollment: {
7951
+ description: string;
7936
7952
  type: string;
7937
7953
  };
7938
7954
  can_create_acs_access_groups: {
7955
+ description: string;
7939
7956
  type: string;
7940
7957
  };
7941
7958
  can_remove_acs_users_from_acs_access_groups: {
7959
+ description: string;
7942
7960
  type: string;
7943
7961
  };
7944
7962
  connected_account_ids: {
7963
+ description: string;
7945
7964
  items: {
7946
7965
  format: string;
7947
7966
  type: string;
@@ -7949,22 +7968,29 @@ declare const _default: {
7949
7968
  type: string;
7950
7969
  };
7951
7970
  created_at: {
7971
+ description: string;
7952
7972
  format: string;
7953
7973
  type: string;
7954
7974
  };
7955
7975
  errors: {
7976
+ description: string;
7956
7977
  items: {
7978
+ description: string;
7957
7979
  oneOf: {
7980
+ description: string;
7958
7981
  properties: {
7959
7982
  created_at: {
7983
+ description: string;
7960
7984
  format: string;
7961
7985
  type: string;
7962
7986
  };
7963
7987
  error_code: {
7988
+ description: string;
7964
7989
  enum: string[];
7965
7990
  type: string;
7966
7991
  };
7967
7992
  message: {
7993
+ description: string;
7968
7994
  type: string;
7969
7995
  };
7970
7996
  };
@@ -7975,19 +8001,24 @@ declare const _default: {
7975
8001
  type: string;
7976
8002
  };
7977
8003
  external_type: {
8004
+ description: string;
7978
8005
  enum: string[];
7979
8006
  type: string;
7980
8007
  };
7981
8008
  external_type_display_name: {
8009
+ description: string;
7982
8010
  type: string;
7983
8011
  };
7984
8012
  image_alt_text: {
8013
+ description: string;
7985
8014
  type: string;
7986
8015
  };
7987
8016
  image_url: {
8017
+ description: string;
7988
8018
  type: string;
7989
8019
  };
7990
8020
  name: {
8021
+ description: string;
7991
8022
  type: string;
7992
8023
  };
7993
8024
  system_type: {
@@ -8003,12 +8034,15 @@ declare const _default: {
8003
8034
  };
8004
8035
  warnings: {
8005
8036
  items: {
8037
+ description: string;
8006
8038
  properties: {};
8007
8039
  type: string;
8008
8040
  };
8009
8041
  type: string;
8042
+ 'x-undocumented': string;
8010
8043
  };
8011
8044
  workspace_id: {
8045
+ description: string;
8012
8046
  format: string;
8013
8047
  type: string;
8014
8048
  };
@@ -26435,35 +26469,57 @@ interface Routes {
26435
26469
  };
26436
26470
  formData: {};
26437
26471
  jsonResponse: {
26472
+ /** Represents an [access control system](https://docs.seam.co/latest/capability-guides/access-systems). */
26438
26473
  acs_system: {
26474
+ /** ID of the `acs_system`. */
26439
26475
  acs_system_id: string;
26476
+ /** Brand-specific terminology for the `acs_system` type. */
26440
26477
  external_type?: ('pti_site' | 'alta_org' | 'salto_site' | 'brivo_account' | 'hid_credential_manager_organization' | 'visionline_system' | 'assa_abloy_credential_service' | 'latch_building') | undefined;
26478
+ /** Display name that corresponds to the brand-specific terminology for the `acs_system` type. */
26441
26479
  external_type_display_name?: string | undefined;
26442
26480
  /**
26443
- * @deprecated use external_type */
26481
+ * @deprecated Use `external_type`. */
26444
26482
  system_type?: ('pti_site' | 'alta_org' | 'salto_site' | 'brivo_account' | 'hid_credential_manager_organization' | 'visionline_system' | 'assa_abloy_credential_service' | 'latch_building') | undefined;
26445
26483
  /**
26446
- * @deprecated use external_type_display_name */
26484
+ * @deprecated Use `external_type_display_name`. */
26447
26485
  system_type_display_name?: string | undefined;
26486
+ /** Name of the `acs_system`. */
26448
26487
  name: string;
26488
+ /** Date and time at which the `acs_system` was created. */
26449
26489
  created_at: string;
26490
+ /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the `acs_system`. */
26450
26491
  workspace_id: string;
26492
+ /** IDs of the [connected accounts](https://docs.seam.co/latest/core-concepts/connected-accounts) associated with the `acs_system`. */
26451
26493
  connected_account_ids: string[];
26494
+ /** URL for the image that represents the `acs_system`. */
26452
26495
  image_url: string;
26496
+ /** Alternative text for the `acs_system` image. */
26453
26497
  image_alt_text: string;
26498
+ /** Errors associated with the `acs_system`. */
26454
26499
  errors: Array<{
26500
+ /** Date and time at which Seam created the error. */
26455
26501
  created_at: string;
26502
+ /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */
26456
26503
  message: string;
26504
+ /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */
26457
26505
  error_code: 'seam_bridge_disconnected';
26458
26506
  } | {
26507
+ /** Date and time at which Seam created the error. */
26459
26508
  created_at: string;
26509
+ /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */
26460
26510
  message: string;
26511
+ /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */
26461
26512
  error_code: 'visionline_instance_unreachable';
26462
26513
  }>;
26514
+ /** */
26463
26515
  warnings: Array<{}>;
26516
+ /** Indicates whether it is possible to [launch enrollment automations](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#prepare-the-phones-for-a-user-identity-to-start-receiving-mobile-credentials-using-an-enrollment-aut) for the `acs_system`. */
26464
26517
  can_automate_enrollment?: boolean | undefined;
26518
+ /** Indicates whether the `acs_system` supports creating [access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems). */
26465
26519
  can_create_acs_access_groups?: boolean | undefined;
26520
+ /** Indicates whether the `acs_system` supports [removing users from access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#remove-an-acs-user-from-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems). */
26466
26521
  can_remove_acs_users_from_acs_access_groups?: boolean | undefined;
26522
+ /** Indicates whether the `acs_system` supports [adding users to access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#add-an-acs-user-to-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems). */
26467
26523
  can_add_acs_users_to_acs_access_groups?: boolean | undefined;
26468
26524
  };
26469
26525
  };
@@ -26479,34 +26535,55 @@ interface Routes {
26479
26535
  formData: {};
26480
26536
  jsonResponse: {
26481
26537
  acs_systems: Array<{
26538
+ /** ID of the `acs_system`. */
26482
26539
  acs_system_id: string;
26540
+ /** Brand-specific terminology for the `acs_system` type. */
26483
26541
  external_type?: ('pti_site' | 'alta_org' | 'salto_site' | 'brivo_account' | 'hid_credential_manager_organization' | 'visionline_system' | 'assa_abloy_credential_service' | 'latch_building') | undefined;
26542
+ /** Display name that corresponds to the brand-specific terminology for the `acs_system` type. */
26484
26543
  external_type_display_name?: string | undefined;
26485
26544
  /**
26486
- * @deprecated use external_type */
26545
+ * @deprecated Use `external_type`. */
26487
26546
  system_type?: ('pti_site' | 'alta_org' | 'salto_site' | 'brivo_account' | 'hid_credential_manager_organization' | 'visionline_system' | 'assa_abloy_credential_service' | 'latch_building') | undefined;
26488
26547
  /**
26489
- * @deprecated use external_type_display_name */
26548
+ * @deprecated Use `external_type_display_name`. */
26490
26549
  system_type_display_name?: string | undefined;
26550
+ /** Name of the `acs_system`. */
26491
26551
  name: string;
26552
+ /** Date and time at which the `acs_system` was created. */
26492
26553
  created_at: string;
26554
+ /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the `acs_system`. */
26493
26555
  workspace_id: string;
26556
+ /** IDs of the [connected accounts](https://docs.seam.co/latest/core-concepts/connected-accounts) associated with the `acs_system`. */
26494
26557
  connected_account_ids: string[];
26558
+ /** URL for the image that represents the `acs_system`. */
26495
26559
  image_url: string;
26560
+ /** Alternative text for the `acs_system` image. */
26496
26561
  image_alt_text: string;
26562
+ /** Errors associated with the `acs_system`. */
26497
26563
  errors: Array<{
26564
+ /** Date and time at which Seam created the error. */
26498
26565
  created_at: string;
26566
+ /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */
26499
26567
  message: string;
26568
+ /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */
26500
26569
  error_code: 'seam_bridge_disconnected';
26501
26570
  } | {
26571
+ /** Date and time at which Seam created the error. */
26502
26572
  created_at: string;
26573
+ /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */
26503
26574
  message: string;
26575
+ /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */
26504
26576
  error_code: 'visionline_instance_unreachable';
26505
26577
  }>;
26578
+ /** */
26506
26579
  warnings: Array<{}>;
26580
+ /** Indicates whether it is possible to [launch enrollment automations](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#prepare-the-phones-for-a-user-identity-to-start-receiving-mobile-credentials-using-an-enrollment-aut) for the `acs_system`. */
26507
26581
  can_automate_enrollment?: boolean | undefined;
26582
+ /** Indicates whether the `acs_system` supports creating [access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems). */
26508
26583
  can_create_acs_access_groups?: boolean | undefined;
26584
+ /** Indicates whether the `acs_system` supports [removing users from access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#remove-an-acs-user-from-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems). */
26509
26585
  can_remove_acs_users_from_acs_access_groups?: boolean | undefined;
26586
+ /** Indicates whether the `acs_system` supports [adding users to access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#add-an-acs-user-to-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems). */
26510
26587
  can_add_acs_users_to_acs_access_groups?: boolean | undefined;
26511
26588
  }>;
26512
26589
  };
@@ -26522,34 +26599,55 @@ interface Routes {
26522
26599
  formData: {};
26523
26600
  jsonResponse: {
26524
26601
  acs_systems: Array<{
26602
+ /** ID of the `acs_system`. */
26525
26603
  acs_system_id: string;
26604
+ /** Brand-specific terminology for the `acs_system` type. */
26526
26605
  external_type?: ('pti_site' | 'alta_org' | 'salto_site' | 'brivo_account' | 'hid_credential_manager_organization' | 'visionline_system' | 'assa_abloy_credential_service' | 'latch_building') | undefined;
26606
+ /** Display name that corresponds to the brand-specific terminology for the `acs_system` type. */
26527
26607
  external_type_display_name?: string | undefined;
26528
26608
  /**
26529
- * @deprecated use external_type */
26609
+ * @deprecated Use `external_type`. */
26530
26610
  system_type?: ('pti_site' | 'alta_org' | 'salto_site' | 'brivo_account' | 'hid_credential_manager_organization' | 'visionline_system' | 'assa_abloy_credential_service' | 'latch_building') | undefined;
26531
26611
  /**
26532
- * @deprecated use external_type_display_name */
26612
+ * @deprecated Use `external_type_display_name`. */
26533
26613
  system_type_display_name?: string | undefined;
26614
+ /** Name of the `acs_system`. */
26534
26615
  name: string;
26616
+ /** Date and time at which the `acs_system` was created. */
26535
26617
  created_at: string;
26618
+ /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the `acs_system`. */
26536
26619
  workspace_id: string;
26620
+ /** IDs of the [connected accounts](https://docs.seam.co/latest/core-concepts/connected-accounts) associated with the `acs_system`. */
26537
26621
  connected_account_ids: string[];
26622
+ /** URL for the image that represents the `acs_system`. */
26538
26623
  image_url: string;
26624
+ /** Alternative text for the `acs_system` image. */
26539
26625
  image_alt_text: string;
26626
+ /** Errors associated with the `acs_system`. */
26540
26627
  errors: Array<{
26628
+ /** Date and time at which Seam created the error. */
26541
26629
  created_at: string;
26630
+ /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */
26542
26631
  message: string;
26632
+ /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */
26543
26633
  error_code: 'seam_bridge_disconnected';
26544
26634
  } | {
26635
+ /** Date and time at which Seam created the error. */
26545
26636
  created_at: string;
26637
+ /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */
26546
26638
  message: string;
26639
+ /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */
26547
26640
  error_code: 'visionline_instance_unreachable';
26548
26641
  }>;
26642
+ /** */
26549
26643
  warnings: Array<{}>;
26644
+ /** Indicates whether it is possible to [launch enrollment automations](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#prepare-the-phones-for-a-user-identity-to-start-receiving-mobile-credentials-using-an-enrollment-aut) for the `acs_system`. */
26550
26645
  can_automate_enrollment?: boolean | undefined;
26646
+ /** Indicates whether the `acs_system` supports creating [access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems). */
26551
26647
  can_create_acs_access_groups?: boolean | undefined;
26648
+ /** Indicates whether the `acs_system` supports [removing users from access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#remove-an-acs-user-from-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems). */
26552
26649
  can_remove_acs_users_from_acs_access_groups?: boolean | undefined;
26650
+ /** Indicates whether the `acs_system` supports [adding users to access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#add-an-acs-user-to-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems). */
26553
26651
  can_add_acs_users_to_acs_access_groups?: boolean | undefined;
26554
26652
  }>;
26555
26653
  };
@@ -37910,34 +38008,55 @@ interface Routes {
37910
38008
  formData: {};
37911
38009
  jsonResponse: {
37912
38010
  acs_systems: Array<{
38011
+ /** ID of the `acs_system`. */
37913
38012
  acs_system_id: string;
38013
+ /** Brand-specific terminology for the `acs_system` type. */
37914
38014
  external_type?: ('pti_site' | 'alta_org' | 'salto_site' | 'brivo_account' | 'hid_credential_manager_organization' | 'visionline_system' | 'assa_abloy_credential_service' | 'latch_building') | undefined;
38015
+ /** Display name that corresponds to the brand-specific terminology for the `acs_system` type. */
37915
38016
  external_type_display_name?: string | undefined;
37916
38017
  /**
37917
- * @deprecated use external_type */
38018
+ * @deprecated Use `external_type`. */
37918
38019
  system_type?: ('pti_site' | 'alta_org' | 'salto_site' | 'brivo_account' | 'hid_credential_manager_organization' | 'visionline_system' | 'assa_abloy_credential_service' | 'latch_building') | undefined;
37919
38020
  /**
37920
- * @deprecated use external_type_display_name */
38021
+ * @deprecated Use `external_type_display_name`. */
37921
38022
  system_type_display_name?: string | undefined;
38023
+ /** Name of the `acs_system`. */
37922
38024
  name: string;
38025
+ /** Date and time at which the `acs_system` was created. */
37923
38026
  created_at: string;
38027
+ /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the `acs_system`. */
37924
38028
  workspace_id: string;
38029
+ /** IDs of the [connected accounts](https://docs.seam.co/latest/core-concepts/connected-accounts) associated with the `acs_system`. */
37925
38030
  connected_account_ids: string[];
38031
+ /** URL for the image that represents the `acs_system`. */
37926
38032
  image_url: string;
38033
+ /** Alternative text for the `acs_system` image. */
37927
38034
  image_alt_text: string;
38035
+ /** Errors associated with the `acs_system`. */
37928
38036
  errors: Array<{
38037
+ /** Date and time at which Seam created the error. */
37929
38038
  created_at: string;
38039
+ /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */
37930
38040
  message: string;
38041
+ /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */
37931
38042
  error_code: 'seam_bridge_disconnected';
37932
38043
  } | {
38044
+ /** Date and time at which Seam created the error. */
37933
38045
  created_at: string;
38046
+ /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */
37934
38047
  message: string;
38048
+ /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */
37935
38049
  error_code: 'visionline_instance_unreachable';
37936
38050
  }>;
38051
+ /** */
37937
38052
  warnings: Array<{}>;
38053
+ /** Indicates whether it is possible to [launch enrollment automations](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#prepare-the-phones-for-a-user-identity-to-start-receiving-mobile-credentials-using-an-enrollment-aut) for the `acs_system`. */
37938
38054
  can_automate_enrollment?: boolean | undefined;
38055
+ /** Indicates whether the `acs_system` supports creating [access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems). */
37939
38056
  can_create_acs_access_groups?: boolean | undefined;
38057
+ /** Indicates whether the `acs_system` supports [removing users from access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#remove-an-acs-user-from-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems). */
37940
38058
  can_remove_acs_users_from_acs_access_groups?: boolean | undefined;
38059
+ /** Indicates whether the `acs_system` supports [adding users to access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#add-an-acs-user-to-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems). */
37941
38060
  can_add_acs_users_to_acs_access_groups?: boolean | undefined;
37942
38061
  }>;
37943
38062
  };
@@ -1,9 +1,21 @@
1
1
  import { z } from 'zod';
2
2
  export const acs_system_capability_flags = z.object({
3
- can_automate_enrollment: z.boolean().optional(),
4
- can_create_acs_access_groups: z.boolean().optional(),
5
- can_remove_acs_users_from_acs_access_groups: z.boolean().optional(),
6
- can_add_acs_users_to_acs_access_groups: z.boolean().optional(),
3
+ can_automate_enrollment: z
4
+ .boolean()
5
+ .optional()
6
+ .describe('Indicates whether it is possible to [launch enrollment automations](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#prepare-the-phones-for-a-user-identity-to-start-receiving-mobile-credentials-using-an-enrollment-aut) for the `acs_system`.'),
7
+ can_create_acs_access_groups: z
8
+ .boolean()
9
+ .optional()
10
+ .describe('Indicates whether the `acs_system` supports creating [access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems).'),
11
+ can_remove_acs_users_from_acs_access_groups: z
12
+ .boolean()
13
+ .optional()
14
+ .describe('Indicates whether the `acs_system` supports [removing users from access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#remove-an-acs-user-from-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems).'),
15
+ can_add_acs_users_to_acs_access_groups: z
16
+ .boolean()
17
+ .optional()
18
+ .describe('Indicates whether the `acs_system` supports [adding users to access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#add-an-acs-user-to-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems).'),
7
19
  });
8
20
  // If changed, update seam.acs_system.external_type generated column
9
21
  export const acs_system_external_type = z.enum([
@@ -17,52 +29,95 @@ export const acs_system_external_type = z.enum([
17
29
  'latch_building',
18
30
  ]);
19
31
  const common_acs_system_error = z.object({
20
- created_at: z.string().datetime(),
21
- message: z.string(),
32
+ created_at: z
33
+ .string()
34
+ .datetime()
35
+ .describe('Date and time at which Seam created the error.'),
36
+ message: z
37
+ .string()
38
+ .describe('Detailed description of the error. Provides insights into the issue and potentially how to rectify it.'),
22
39
  });
40
+ const error_code_description = 'Unique identifier of the type of error. Enables quick recognition and categorization of the issue.';
23
41
  const seam_bridge_disconnected = common_acs_system_error.extend({
24
- error_code: z.literal('seam_bridge_disconnected'),
25
- });
42
+ error_code: z
43
+ .literal('seam_bridge_disconnected')
44
+ .describe(error_code_description),
45
+ })
46
+ .describe(`Indicates that the Seam API cannot communicate with the [Seam Bridge](https://docs.seam.co/latest/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline.
47
+ This error might also occur if the Seam Bridge is connected to the wrong [workspace](https://docs.seam.co/latest/core-concepts/workspaces).
48
+ See also [Troubleshooting Your Access Control System](https://docs.seam.co/latest/capability-guides/capability-guides/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected).`);
26
49
  const visionline_instance_unreachable = common_acs_system_error.extend({
27
- error_code: z.literal('visionline_instance_unreachable'),
28
- });
29
- const acs_system_error = z.union([
30
- seam_bridge_disconnected,
31
- visionline_instance_unreachable,
32
- ]);
50
+ error_code: z
51
+ .literal('visionline_instance_unreachable')
52
+ .describe(error_code_description),
53
+ })
54
+ .describe(`Indicates that the Seam Bridge is functioning correctly and the Seam API can communicate with the Seam Bridge, but the Seam API cannot connect to the on-premises [Visionline access control system](https://docs.seam.co/latest/device-and-system-integration-guides/assa-abloy-visionline-access-control-system).
55
+ For example, the IP address of the on-premises access control system may be set incorrectly within the Seam [workspace](https://docs.seam.co/latest/core-concepts/workspaces).
56
+ See also [Troubleshooting Your Access Control System](https://docs.seam.co/latest/capability-guides/capability-guides/access-systems/troubleshooting-your-access-control-system#acs_system.errors.visionline_instance_unreachable).`);
57
+ const acs_system_error = z
58
+ .union([seam_bridge_disconnected, visionline_instance_unreachable])
59
+ .describe('Error associated with the `acs_system`.');
33
60
  const acs_system_error_map = z.object({
34
61
  seam_bridge_disconnected: seam_bridge_disconnected.optional().nullable(),
35
62
  visionline_instance_unreachable: visionline_instance_unreachable
36
63
  .optional()
37
64
  .nullable(),
38
65
  });
39
- const acs_system_warning = z.object({});
66
+ const acs_system_warning = z.object({}).describe(`
67
+ ---
68
+ undocumented: Currently, no warnings defined for \`acs_system\`s.
69
+ ---
70
+ `);
40
71
  const acs_system_warning_map = z.object({});
41
72
  export const acs_system = z
42
73
  .object({
43
- acs_system_id: z.string().uuid(),
44
- external_type: acs_system_external_type.optional(),
45
- external_type_display_name: z.string().optional(),
74
+ acs_system_id: z.string().uuid().describe('ID of the `acs_system`.'),
75
+ external_type: acs_system_external_type
76
+ .describe('Brand-specific terminology for the `acs_system` type.')
77
+ .optional(),
78
+ external_type_display_name: z
79
+ .string()
80
+ .describe('Display name that corresponds to the brand-specific terminology for the `acs_system` type.')
81
+ .optional(),
46
82
  system_type: acs_system_external_type
47
83
  .describe(`
48
84
  ---
49
- deprecated: use external_type
85
+ deprecated: Use \`external_type\`.
50
86
  ---
51
87
  `)
52
88
  .optional(),
53
89
  system_type_display_name: z.string().optional().describe(`
54
90
  ---
55
- deprecated: use external_type_display_name
91
+ deprecated: Use \`external_type_display_name\`.
92
+ ---
93
+ `),
94
+ name: z.string().describe('Name of the `acs_system`.'),
95
+ created_at: z
96
+ .string()
97
+ .datetime()
98
+ .describe('Date and time at which the `acs_system` was created.'),
99
+ workspace_id: z
100
+ .string()
101
+ .uuid()
102
+ .describe('ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the `acs_system`.'),
103
+ connected_account_ids: z
104
+ .array(z.string().uuid())
105
+ .describe('IDs of the [connected accounts](https://docs.seam.co/latest/core-concepts/connected-accounts) associated with the `acs_system`.'),
106
+ image_url: z
107
+ .string()
108
+ .describe('URL for the image that represents the `acs_system`.'),
109
+ image_alt_text: z
110
+ .string()
111
+ .describe('Alternative text for the `acs_system` image.'),
112
+ errors: z
113
+ .array(acs_system_error)
114
+ .describe('Errors associated with the `acs_system`.'),
115
+ warnings: z.array(acs_system_warning).describe(`
116
+ ---
117
+ undocumented: Currently, no warnings defined for \`acs_system\`s.
56
118
  ---
57
119
  `),
58
- name: z.string(),
59
- created_at: z.string().datetime(),
60
- workspace_id: z.string().uuid(),
61
- connected_account_ids: z.array(z.string().uuid()),
62
- image_url: z.string(),
63
- image_alt_text: z.string(),
64
- errors: z.array(acs_system_error),
65
- warnings: z.array(acs_system_warning),
66
120
  })
67
- .merge(acs_system_capability_flags);
121
+ .merge(acs_system_capability_flags)
122
+ .describe('Represents an [access control system](https://docs.seam.co/latest/capability-guides/access-systems).');
68
123
  //# sourceMappingURL=acs-system.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"acs-system.js","sourceRoot":"","sources":["../../../../../src/lib/seam/connect/models/acs/acs-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,uBAAuB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/C,4BAA4B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpD,2CAA2C,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnE,sCAAsC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC/D,CAAC,CAAA;AAEF,oEAAoE;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC7C,UAAU;IACV,UAAU;IACV,YAAY;IACZ,eAAe;IACf,qCAAqC;IACrC,mBAAmB;IACnB,+BAA+B;IAC/B,gBAAgB;CACjB,CAAC,CAAA;AAIF,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAA;AAEF,MAAM,wBAAwB,GAAG,uBAAuB,CAAC,MAAM,CAAC;IAC9D,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC;CAClD,CAAC,CAAA;AACF,MAAM,+BAA+B,GAAG,uBAAuB,CAAC,MAAM,CAAC;IACrE,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,iCAAiC,CAAC;CACzD,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC/B,wBAAwB;IACxB,+BAA+B;CAChC,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,wBAAwB,EAAE,wBAAwB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACxE,+BAA+B,EAAE,+BAA+B;SAC7D,QAAQ,EAAE;SACV,QAAQ,EAAE;CACd,CAAC,CAAA;AAIF,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAEvC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAI3C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAChC,aAAa,EAAE,wBAAwB,CAAC,QAAQ,EAAE;IAClD,0BAA0B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjD,WAAW,EAAE,wBAAwB;SAClC,QAAQ,CACP;;;;OAID,CACA;SACA,QAAQ,EAAE;IACb,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;;;;OAItD,CAAC;IACJ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC/B,qBAAqB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;IACjC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;CACtC,CAAC;KACD,KAAK,CAAC,2BAA2B,CAAC,CAAA"}
1
+ {"version":3,"file":"acs-system.js","sourceRoot":"","sources":["../../../../../src/lib/seam/connect/models/acs/acs-system.ts"],"names":[],"mappings":"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"}
@@ -570,6 +570,10 @@ export declare const noise_sensor_noise_threshold_triggered_event: z.ZodObject<{
570
570
  event_id: z.ZodString;
571
571
  occurred_at: z.ZodString;
572
572
  event_type: z.ZodLiteral<"noise_sensor.noise_threshold_triggered">;
573
+ noise_level_decibels: z.ZodOptional<z.ZodNumber>;
574
+ noise_level_nrs: z.ZodOptional<z.ZodNumber>;
575
+ noise_threshold_id: z.ZodOptional<z.ZodString>;
576
+ noise_threshold_name: z.ZodOptional<z.ZodString>;
573
577
  noiseaware_metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
574
578
  minut_metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
575
579
  }, "strip", z.ZodTypeAny, {
@@ -580,6 +584,10 @@ export declare const noise_sensor_noise_threshold_triggered_event: z.ZodObject<{
580
584
  event_id: string;
581
585
  occurred_at: string;
582
586
  event_type: "noise_sensor.noise_threshold_triggered";
587
+ noise_level_decibels?: number | undefined;
588
+ noise_level_nrs?: number | undefined;
589
+ noise_threshold_id?: string | undefined;
590
+ noise_threshold_name?: string | undefined;
583
591
  noiseaware_metadata?: Record<string, unknown> | undefined;
584
592
  minut_metadata?: Record<string, unknown> | undefined;
585
593
  }, {
@@ -590,6 +598,10 @@ export declare const noise_sensor_noise_threshold_triggered_event: z.ZodObject<{
590
598
  event_id: string;
591
599
  occurred_at: string;
592
600
  event_type: "noise_sensor.noise_threshold_triggered";
601
+ noise_level_decibels?: number | undefined;
602
+ noise_level_nrs?: number | undefined;
603
+ noise_threshold_id?: string | undefined;
604
+ noise_threshold_name?: string | undefined;
593
605
  noiseaware_metadata?: Record<string, unknown> | undefined;
594
606
  minut_metadata?: Record<string, unknown> | undefined;
595
607
  }>;
@@ -1220,6 +1232,10 @@ export declare const device_events: readonly [z.ZodObject<{
1220
1232
  event_id: z.ZodString;
1221
1233
  occurred_at: z.ZodString;
1222
1234
  event_type: z.ZodLiteral<"noise_sensor.noise_threshold_triggered">;
1235
+ noise_level_decibels: z.ZodOptional<z.ZodNumber>;
1236
+ noise_level_nrs: z.ZodOptional<z.ZodNumber>;
1237
+ noise_threshold_id: z.ZodOptional<z.ZodString>;
1238
+ noise_threshold_name: z.ZodOptional<z.ZodString>;
1223
1239
  noiseaware_metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1224
1240
  minut_metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1225
1241
  }, "strip", z.ZodTypeAny, {
@@ -1230,6 +1246,10 @@ export declare const device_events: readonly [z.ZodObject<{
1230
1246
  event_id: string;
1231
1247
  occurred_at: string;
1232
1248
  event_type: "noise_sensor.noise_threshold_triggered";
1249
+ noise_level_decibels?: number | undefined;
1250
+ noise_level_nrs?: number | undefined;
1251
+ noise_threshold_id?: string | undefined;
1252
+ noise_threshold_name?: string | undefined;
1233
1253
  noiseaware_metadata?: Record<string, unknown> | undefined;
1234
1254
  minut_metadata?: Record<string, unknown> | undefined;
1235
1255
  }, {
@@ -1240,6 +1260,10 @@ export declare const device_events: readonly [z.ZodObject<{
1240
1260
  event_id: string;
1241
1261
  occurred_at: string;
1242
1262
  event_type: "noise_sensor.noise_threshold_triggered";
1263
+ noise_level_decibels?: number | undefined;
1264
+ noise_level_nrs?: number | undefined;
1265
+ noise_threshold_id?: string | undefined;
1266
+ noise_threshold_name?: string | undefined;
1243
1267
  noiseaware_metadata?: Record<string, unknown> | undefined;
1244
1268
  minut_metadata?: Record<string, unknown> | undefined;
1245
1269
  }>, z.ZodObject<{
@@ -162,7 +162,11 @@ export const device_accessory_keypad_disconnected_event = device_event
162
162
  export const noise_sensor_noise_threshold_triggered_event = device_event
163
163
  .extend({
164
164
  event_type: z.literal('noise_sensor.noise_threshold_triggered'),
165
- // TODO: import from ../devices
165
+ noise_level_decibels: z.number().optional(),
166
+ noise_level_nrs: z.number().optional(),
167
+ noise_threshold_id: z.string().uuid().optional(),
168
+ noise_threshold_name: z.string().optional(),
169
+ // TODO: remove metadata from this event
166
170
  noiseaware_metadata: z.record(z.unknown()).optional().describe(`
167
171
  ---
168
172
  title: Noiseaware Metadata