@seamapi/types 1.298.0 → 1.300.0

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.
@@ -4173,7 +4173,7 @@ export interface Routes {
4173
4173
  /** Date and time at which the user's access starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */
4174
4174
  starts_at: string;
4175
4175
  /** Date and time at which the user's access ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */
4176
- ends_at: string;
4176
+ ends_at: string | null;
4177
4177
  } | undefined;
4178
4178
  /** ID of the user identity associated with the `acs_user`. */
4179
4179
  user_identity_id?: string | undefined;
@@ -7650,10 +7650,10 @@ export interface Routes {
7650
7650
  acs_access_group_ids?: string[];
7651
7651
  /** ID of the user identity with which to associate the new `acs_user`. */
7652
7652
  user_identity_id?: string | undefined;
7653
- /** `starts_at` and `ends_at` timestamps for the new `acs_user`'s access. If you specify an `access_schedule`, you must include both `starts_at` and `ends_at`. `ends_at` must be a time in the future and after `starts_at`. Only applicable to Salto KS access control systems. */
7653
+ /** `starts_at` and `ends_at` timestamps for the new `acs_user`'s access. If you specify an `access_schedule`, you may include both `starts_at` and `ends_at`. `starts_at` defaults to the current time if not provided. `ends_at` is optional and must be a time in the future and after `starts_at`. */
7654
7654
  access_schedule?: {
7655
- starts_at: string;
7656
- ends_at: string;
7655
+ starts_at?: string | undefined;
7656
+ ends_at?: (string | undefined) | null;
7657
7657
  } | undefined;
7658
7658
  /** Full name of the `acs_user`. */
7659
7659
  full_name?: string | undefined;
@@ -7691,7 +7691,7 @@ export interface Routes {
7691
7691
  /** Date and time at which the user's access starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */
7692
7692
  starts_at: string;
7693
7693
  /** Date and time at which the user's access ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */
7694
- ends_at: string;
7694
+ ends_at: string | null;
7695
7695
  } | undefined;
7696
7696
  /** ID of the user identity associated with the `acs_user`. */
7697
7697
  user_identity_id?: string | undefined;
@@ -7806,7 +7806,7 @@ export interface Routes {
7806
7806
  /** Date and time at which the user's access starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */
7807
7807
  starts_at: string;
7808
7808
  /** Date and time at which the user's access ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */
7809
- ends_at: string;
7809
+ ends_at: string | null;
7810
7810
  } | undefined;
7811
7811
  /** ID of the user identity associated with the `acs_user`. */
7812
7812
  user_identity_id?: string | undefined;
@@ -7917,7 +7917,7 @@ export interface Routes {
7917
7917
  /** Date and time at which the user's access starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */
7918
7918
  starts_at: string;
7919
7919
  /** Date and time at which the user's access ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */
7920
- ends_at: string;
7920
+ ends_at: string | null;
7921
7921
  } | undefined;
7922
7922
  /** ID of the user identity associated with the `acs_user`. */
7923
7923
  user_identity_id?: string | undefined;
@@ -8118,7 +8118,7 @@ export interface Routes {
8118
8118
  /** Date and time at which the user's access starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */
8119
8119
  starts_at: string;
8120
8120
  /** Date and time at which the user's access ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */
8121
- ends_at: string;
8121
+ ends_at: string | null;
8122
8122
  } | undefined;
8123
8123
  /** ID of the user identity associated with the `acs_user`. */
8124
8124
  user_identity_id?: string | undefined;
@@ -8224,7 +8224,7 @@ export interface Routes {
8224
8224
  /** Date and time at which the user's access starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */
8225
8225
  starts_at: string;
8226
8226
  /** Date and time at which the user's access ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */
8227
- ends_at: string;
8227
+ ends_at: string | null;
8228
8228
  } | undefined;
8229
8229
  /** ID of the user identity associated with the `acs_user`. */
8230
8230
  user_identity_id?: string | undefined;
@@ -8310,7 +8310,7 @@ export interface Routes {
8310
8310
  method: 'PATCH' | 'POST';
8311
8311
  queryParams: {};
8312
8312
  jsonBody: {
8313
- /** `starts_at` and `ends_at` timestamps for the `acs_user`'s access. If you specify an `access_schedule`, you must include both `starts_at` and `ends_at`. `ends_at` must be a time in the future and after `starts_at`. Only applicable to Salto KS access control systems. */
8313
+ /** `starts_at` and `ends_at` timestamps for the `acs_user`'s access. If you specify an `access_schedule`, you must include both `starts_at` and `ends_at`. `ends_at` must be a time in the future and after `starts_at`. */
8314
8314
  access_schedule?: ({
8315
8315
  starts_at: string;
8316
8316
  ends_at: string;
@@ -26471,6 +26471,876 @@ export interface Routes {
26471
26471
  };
26472
26472
  };
26473
26473
  };
26474
+ '/thermostats/set_hvac_mode': {
26475
+ route: '/thermostats/set_hvac_mode';
26476
+ method: 'POST';
26477
+ queryParams: {};
26478
+ jsonBody: {
26479
+ hvac_mode_setting: 'off';
26480
+ /** ID of the desired thermostat device. */
26481
+ device_id: string;
26482
+ } | {
26483
+ hvac_mode_setting: 'cool';
26484
+ /** ID of the desired thermostat device. */
26485
+ device_id: string;
26486
+ /** Desired [cooling set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C. You must set one of the `cooling_set_point` parameters. */
26487
+ cooling_set_point_celsius?: number | undefined;
26488
+ /** Desired [cooling set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F. You must set one of the `cooling_set_point` parameters. */
26489
+ cooling_set_point_fahrenheit?: number | undefined;
26490
+ } | {
26491
+ hvac_mode_setting: 'heat';
26492
+ /** ID of the desired thermostat device. */
26493
+ device_id: string;
26494
+ /** Desired [heating set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C. You must set one of the `heating_set_point` parameters. */
26495
+ heating_set_point_celsius?: number | undefined;
26496
+ /** Desired [heating set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F. You must set one of the `heating_set_point` parameters. */
26497
+ heating_set_point_fahrenheit?: number | undefined;
26498
+ } | {
26499
+ hvac_mode_setting: 'heat_cool';
26500
+ /** ID of the desired thermostat device. */
26501
+ device_id: string;
26502
+ /** Desired [cooling set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C. You must set one of the `cooling_set_point` parameters. */
26503
+ cooling_set_point_celsius?: number | undefined;
26504
+ /** Desired [cooling set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F. You must set one of the `cooling_set_point` parameters. */
26505
+ cooling_set_point_fahrenheit?: number | undefined;
26506
+ /** Desired [heating set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C. You must set one of the `heating_set_point` parameters. */
26507
+ heating_set_point_celsius?: number | undefined;
26508
+ /** Desired [heating set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F. You must set one of the `heating_set_point` parameters. */
26509
+ heating_set_point_fahrenheit?: number | undefined;
26510
+ };
26511
+ commonParams: {};
26512
+ formData: {};
26513
+ jsonResponse: {
26514
+ action_attempt: {
26515
+ /** The ID of the action attempt. */
26516
+ action_attempt_id: string;
26517
+ status: 'pending';
26518
+ result: null;
26519
+ error: null;
26520
+ action_type: 'LOCK_DOOR';
26521
+ } | {
26522
+ /** The ID of the action attempt. */
26523
+ action_attempt_id: string;
26524
+ status: 'success';
26525
+ error: null;
26526
+ action_type: 'LOCK_DOOR';
26527
+ result: {};
26528
+ } | {
26529
+ /** The ID of the action attempt. */
26530
+ action_attempt_id: string;
26531
+ status: 'error';
26532
+ result: null;
26533
+ action_type: 'LOCK_DOOR';
26534
+ error: {
26535
+ type: string;
26536
+ message: string;
26537
+ };
26538
+ } | {
26539
+ /** The ID of the action attempt. */
26540
+ action_attempt_id: string;
26541
+ status: 'pending';
26542
+ result: null;
26543
+ error: null;
26544
+ action_type: 'UNLOCK_DOOR';
26545
+ } | {
26546
+ /** The ID of the action attempt. */
26547
+ action_attempt_id: string;
26548
+ status: 'success';
26549
+ error: null;
26550
+ action_type: 'UNLOCK_DOOR';
26551
+ result: {};
26552
+ } | {
26553
+ /** The ID of the action attempt. */
26554
+ action_attempt_id: string;
26555
+ status: 'error';
26556
+ result: null;
26557
+ action_type: 'UNLOCK_DOOR';
26558
+ error: {
26559
+ type: string;
26560
+ message: string;
26561
+ };
26562
+ } | {
26563
+ /** The ID of the action attempt. */
26564
+ action_attempt_id: string;
26565
+ status: 'pending';
26566
+ result: null;
26567
+ error: null;
26568
+ action_type: 'SCAN_CREDENTIAL';
26569
+ } | {
26570
+ /** The ID of the action attempt. */
26571
+ action_attempt_id: string;
26572
+ status: 'success';
26573
+ error: null;
26574
+ action_type: 'SCAN_CREDENTIAL';
26575
+ result: {
26576
+ /** Snapshot of credential data read from physical encoder. */
26577
+ acs_credential_on_encoder: {
26578
+ /** Date and time the credential was created. */
26579
+ created_at: string | null;
26580
+ is_issued: boolean | null;
26581
+ /** Date and time the credential will become useable. */
26582
+ starts_at: string | null;
26583
+ /** Date and time the credential will stop being useable. */
26584
+ ends_at: string | null;
26585
+ /** A number or string that physically identifies this card. */
26586
+ card_number: string | null;
26587
+ /** Visionline-specific metadata for the credential. */
26588
+ visionline_metadata?: {
26589
+ card_id: string;
26590
+ cancelled: boolean;
26591
+ discarded: boolean;
26592
+ expired: boolean;
26593
+ overwritten: boolean;
26594
+ overridden?: boolean | undefined;
26595
+ pending_auto_update: boolean;
26596
+ card_format: 'TLCode' | 'rfid48';
26597
+ card_holder?: string | undefined;
26598
+ number_of_issued_cards: number;
26599
+ guest_acs_entrance_ids?: string[] | undefined;
26600
+ common_acs_entrance_ids?: string[] | undefined;
26601
+ } | undefined;
26602
+ };
26603
+ /** Matching acs_credential currently encoded on this card. */
26604
+ acs_credential_on_seam: ({
26605
+ /** ID of the credential. */
26606
+ acs_credential_id: string;
26607
+ /** ID of the ACS user to whom the credential belongs. */
26608
+ acs_user_id?: string | undefined;
26609
+ acs_credential_pool_id?: string | undefined;
26610
+ /** ID of the access control system that contains the credential. */
26611
+ acs_system_id: string;
26612
+ /** ID of the parent credential. */
26613
+ parent_acs_credential_id?: string | undefined;
26614
+ /** Display name that corresponds to the credential type. */
26615
+ display_name: string;
26616
+ /** Access (PIN) code for the credential. */
26617
+ code?: (string | undefined) | null;
26618
+ card_number?: (string | undefined) | null;
26619
+ is_issued?: boolean | undefined;
26620
+ issued_at?: (string | undefined) | null;
26621
+ /** Access method for the credential. Supported values: `code`, `card`, `mobile_key`. */
26622
+ access_method: 'code' | 'card' | 'mobile_key';
26623
+ /** Brand-specific terminology for the credential type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */
26624
+ external_type?: ('pti_card' | 'brivo_credential' | 'hid_credential' | 'visionline_card' | 'salto_ks_credential') | undefined;
26625
+ /** Display name that corresponds to the brand-specific terminology for the credential type. */
26626
+ external_type_display_name?: string | undefined;
26627
+ /** Date and time at which the credential was created. */
26628
+ created_at: string;
26629
+ /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the credential. */
26630
+ workspace_id: string;
26631
+ /** Date and time at which the credential validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */
26632
+ starts_at?: string | undefined;
26633
+ /** Date and time at which the credential validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. */
26634
+ ends_at?: string | undefined;
26635
+ /** Errors associated with the `acs_credential`. */
26636
+ errors: Array<{
26637
+ error_code: string;
26638
+ message: string;
26639
+ }>;
26640
+ /** Warnings associated with the `acs_credential`. */
26641
+ warnings: Array<{
26642
+ /** Date and time at which Seam created the warning. */
26643
+ created_at: string;
26644
+ /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */
26645
+ message: string;
26646
+ /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */
26647
+ warning_code: 'waiting_to_be_issued';
26648
+ } | {
26649
+ /** Date and time at which Seam created the warning. */
26650
+ created_at: string;
26651
+ /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */
26652
+ message: string;
26653
+ /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */
26654
+ warning_code: 'schedule_externally_modified';
26655
+ } | {
26656
+ /** Date and time at which Seam created the warning. */
26657
+ created_at: string;
26658
+ /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */
26659
+ message: string;
26660
+ /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */
26661
+ warning_code: 'schedule_modified';
26662
+ } | {
26663
+ /** Date and time at which Seam created the warning. */
26664
+ created_at: string;
26665
+ /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */
26666
+ message: string;
26667
+ /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */
26668
+ warning_code: 'being_deleted';
26669
+ }>;
26670
+ /** Indicates whether the credential is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */
26671
+ is_multi_phone_sync_credential?: boolean | undefined;
26672
+ /** Indicates whether the latest state of the credential has been synced from Seam to the provider. */
26673
+ is_latest_desired_state_synced_with_provider?: boolean | undefined;
26674
+ /** Date and time at which the state of the credential was most recently synced from Seam to the provider. */
26675
+ latest_desired_state_synced_with_provider_at?: string | undefined;
26676
+ /** Visionline-specific metadata for the credential. */
26677
+ visionline_metadata?: {
26678
+ card_function_type: 'guest' | 'staff';
26679
+ joiner_acs_credential_ids?: string[] | undefined;
26680
+ guest_acs_entrance_ids?: string[] | undefined;
26681
+ common_acs_entrance_ids?: string[] | undefined;
26682
+ is_valid?: boolean | undefined;
26683
+ auto_join?: boolean | undefined;
26684
+ card_id?: string | undefined;
26685
+ credential_id?: string | undefined;
26686
+ } | undefined;
26687
+ is_managed: true;
26688
+ } | {
26689
+ /** ID of the credential. */
26690
+ acs_credential_id: string;
26691
+ /** ID of the ACS user to whom the credential belongs. */
26692
+ acs_user_id?: string | undefined;
26693
+ acs_credential_pool_id?: string | undefined;
26694
+ /** ID of the access control system that contains the credential. */
26695
+ acs_system_id: string;
26696
+ /** ID of the parent credential. */
26697
+ parent_acs_credential_id?: string | undefined;
26698
+ /** Display name that corresponds to the credential type. */
26699
+ display_name: string;
26700
+ /** Access (PIN) code for the credential. */
26701
+ code?: (string | undefined) | null;
26702
+ card_number?: (string | undefined) | null;
26703
+ is_issued?: boolean | undefined;
26704
+ issued_at?: (string | undefined) | null;
26705
+ /** Access method for the credential. Supported values: `code`, `card`, `mobile_key`. */
26706
+ access_method: 'code' | 'card' | 'mobile_key';
26707
+ /** Brand-specific terminology for the credential type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */
26708
+ external_type?: ('pti_card' | 'brivo_credential' | 'hid_credential' | 'visionline_card' | 'salto_ks_credential') | undefined;
26709
+ /** Display name that corresponds to the brand-specific terminology for the credential type. */
26710
+ external_type_display_name?: string | undefined;
26711
+ /** Date and time at which the credential was created. */
26712
+ created_at: string;
26713
+ /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the credential. */
26714
+ workspace_id: string;
26715
+ /** Date and time at which the credential validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */
26716
+ starts_at?: string | undefined;
26717
+ /** Date and time at which the credential validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. */
26718
+ ends_at?: string | undefined;
26719
+ /** Errors associated with the `acs_credential`. */
26720
+ errors: Array<{
26721
+ error_code: string;
26722
+ message: string;
26723
+ }>;
26724
+ /** Warnings associated with the `acs_credential`. */
26725
+ warnings: Array<{
26726
+ /** Date and time at which Seam created the warning. */
26727
+ created_at: string;
26728
+ /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */
26729
+ message: string;
26730
+ /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */
26731
+ warning_code: 'waiting_to_be_issued';
26732
+ } | {
26733
+ /** Date and time at which Seam created the warning. */
26734
+ created_at: string;
26735
+ /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */
26736
+ message: string;
26737
+ /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */
26738
+ warning_code: 'schedule_externally_modified';
26739
+ } | {
26740
+ /** Date and time at which Seam created the warning. */
26741
+ created_at: string;
26742
+ /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */
26743
+ message: string;
26744
+ /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */
26745
+ warning_code: 'schedule_modified';
26746
+ } | {
26747
+ /** Date and time at which Seam created the warning. */
26748
+ created_at: string;
26749
+ /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */
26750
+ message: string;
26751
+ /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */
26752
+ warning_code: 'being_deleted';
26753
+ }>;
26754
+ /** Indicates whether the credential is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */
26755
+ is_multi_phone_sync_credential?: boolean | undefined;
26756
+ /** Indicates whether the latest state of the credential has been synced from Seam to the provider. */
26757
+ is_latest_desired_state_synced_with_provider?: boolean | undefined;
26758
+ /** Date and time at which the state of the credential was most recently synced from Seam to the provider. */
26759
+ latest_desired_state_synced_with_provider_at?: string | undefined;
26760
+ /** Visionline-specific metadata for the credential. */
26761
+ visionline_metadata?: {
26762
+ card_function_type: 'guest' | 'staff';
26763
+ joiner_acs_credential_ids?: string[] | undefined;
26764
+ guest_acs_entrance_ids?: string[] | undefined;
26765
+ common_acs_entrance_ids?: string[] | undefined;
26766
+ is_valid?: boolean | undefined;
26767
+ auto_join?: boolean | undefined;
26768
+ card_id?: string | undefined;
26769
+ credential_id?: string | undefined;
26770
+ } | undefined;
26771
+ is_managed: false;
26772
+ }) | null;
26773
+ warnings: Array<{
26774
+ warning_code: 'acs_credential_on_encoder_out_of_sync';
26775
+ warning_message: string;
26776
+ }>;
26777
+ };
26778
+ } | {
26779
+ /** The ID of the action attempt. */
26780
+ action_attempt_id: string;
26781
+ status: 'error';
26782
+ result: null;
26783
+ action_type: 'SCAN_CREDENTIAL';
26784
+ error: {
26785
+ type: 'uncategorized_error';
26786
+ message: string;
26787
+ } | {
26788
+ type: 'action_attempt_expired';
26789
+ message: string;
26790
+ } | {
26791
+ type: 'no_card_on_encoder';
26792
+ message: string;
26793
+ };
26794
+ } | {
26795
+ /** The ID of the action attempt. */
26796
+ action_attempt_id: string;
26797
+ status: 'pending';
26798
+ result: null;
26799
+ error: null;
26800
+ action_type: 'ENCODE_CREDENTIAL';
26801
+ } | {
26802
+ /** The ID of the action attempt. */
26803
+ action_attempt_id: string;
26804
+ status: 'success';
26805
+ error: null;
26806
+ action_type: 'ENCODE_CREDENTIAL';
26807
+ /** Means by which a user gains access at an entrance.
26808
+ The `acs_credential` object represents a credential that provides an ACS user access within an access control system. For each acs_credential object, you define the access method. You can also specify additional properties, such as a code. */
26809
+ result: {
26810
+ /** ID of the credential. */
26811
+ acs_credential_id: string;
26812
+ /** ID of the ACS user to whom the credential belongs. */
26813
+ acs_user_id?: string | undefined;
26814
+ acs_credential_pool_id?: string | undefined;
26815
+ /** ID of the access control system that contains the credential. */
26816
+ acs_system_id: string;
26817
+ /** ID of the parent credential. */
26818
+ parent_acs_credential_id?: string | undefined;
26819
+ /** Display name that corresponds to the credential type. */
26820
+ display_name: string;
26821
+ /** Access (PIN) code for the credential. */
26822
+ code?: (string | undefined) | null;
26823
+ card_number?: (string | undefined) | null;
26824
+ is_issued?: boolean | undefined;
26825
+ issued_at?: (string | undefined) | null;
26826
+ /** Access method for the credential. Supported values: `code`, `card`, `mobile_key`. */
26827
+ access_method: 'code' | 'card' | 'mobile_key';
26828
+ /** Brand-specific terminology for the credential type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */
26829
+ external_type?: ('pti_card' | 'brivo_credential' | 'hid_credential' | 'visionline_card' | 'salto_ks_credential') | undefined;
26830
+ /** Display name that corresponds to the brand-specific terminology for the credential type. */
26831
+ external_type_display_name?: string | undefined;
26832
+ /** Date and time at which the credential was created. */
26833
+ created_at: string;
26834
+ /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the credential. */
26835
+ workspace_id: string;
26836
+ /** Date and time at which the credential validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */
26837
+ starts_at?: string | undefined;
26838
+ /** Date and time at which the credential validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. */
26839
+ ends_at?: string | undefined;
26840
+ /** Errors associated with the `acs_credential`. */
26841
+ errors: Array<{
26842
+ error_code: string;
26843
+ message: string;
26844
+ }>;
26845
+ /** Warnings associated with the `acs_credential`. */
26846
+ warnings: Array<{
26847
+ /** Date and time at which Seam created the warning. */
26848
+ created_at: string;
26849
+ /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */
26850
+ message: string;
26851
+ /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */
26852
+ warning_code: 'waiting_to_be_issued';
26853
+ } | {
26854
+ /** Date and time at which Seam created the warning. */
26855
+ created_at: string;
26856
+ /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */
26857
+ message: string;
26858
+ /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */
26859
+ warning_code: 'schedule_externally_modified';
26860
+ } | {
26861
+ /** Date and time at which Seam created the warning. */
26862
+ created_at: string;
26863
+ /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */
26864
+ message: string;
26865
+ /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */
26866
+ warning_code: 'schedule_modified';
26867
+ } | {
26868
+ /** Date and time at which Seam created the warning. */
26869
+ created_at: string;
26870
+ /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */
26871
+ message: string;
26872
+ /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */
26873
+ warning_code: 'being_deleted';
26874
+ }>;
26875
+ /** Indicates whether the credential is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */
26876
+ is_multi_phone_sync_credential?: boolean | undefined;
26877
+ /** Indicates whether the latest state of the credential has been synced from Seam to the provider. */
26878
+ is_latest_desired_state_synced_with_provider?: boolean | undefined;
26879
+ /** Date and time at which the state of the credential was most recently synced from Seam to the provider. */
26880
+ latest_desired_state_synced_with_provider_at?: string | undefined;
26881
+ /** Visionline-specific metadata for the credential. */
26882
+ visionline_metadata?: {
26883
+ card_function_type: 'guest' | 'staff';
26884
+ joiner_acs_credential_ids?: string[] | undefined;
26885
+ guest_acs_entrance_ids?: string[] | undefined;
26886
+ common_acs_entrance_ids?: string[] | undefined;
26887
+ is_valid?: boolean | undefined;
26888
+ auto_join?: boolean | undefined;
26889
+ card_id?: string | undefined;
26890
+ credential_id?: string | undefined;
26891
+ } | undefined;
26892
+ is_managed: true;
26893
+ } | {
26894
+ /** ID of the credential. */
26895
+ acs_credential_id: string;
26896
+ /** ID of the ACS user to whom the credential belongs. */
26897
+ acs_user_id?: string | undefined;
26898
+ acs_credential_pool_id?: string | undefined;
26899
+ /** ID of the access control system that contains the credential. */
26900
+ acs_system_id: string;
26901
+ /** ID of the parent credential. */
26902
+ parent_acs_credential_id?: string | undefined;
26903
+ /** Display name that corresponds to the credential type. */
26904
+ display_name: string;
26905
+ /** Access (PIN) code for the credential. */
26906
+ code?: (string | undefined) | null;
26907
+ card_number?: (string | undefined) | null;
26908
+ is_issued?: boolean | undefined;
26909
+ issued_at?: (string | undefined) | null;
26910
+ /** Access method for the credential. Supported values: `code`, `card`, `mobile_key`. */
26911
+ access_method: 'code' | 'card' | 'mobile_key';
26912
+ /** Brand-specific terminology for the credential type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */
26913
+ external_type?: ('pti_card' | 'brivo_credential' | 'hid_credential' | 'visionline_card' | 'salto_ks_credential') | undefined;
26914
+ /** Display name that corresponds to the brand-specific terminology for the credential type. */
26915
+ external_type_display_name?: string | undefined;
26916
+ /** Date and time at which the credential was created. */
26917
+ created_at: string;
26918
+ /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the credential. */
26919
+ workspace_id: string;
26920
+ /** Date and time at which the credential validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */
26921
+ starts_at?: string | undefined;
26922
+ /** Date and time at which the credential validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. */
26923
+ ends_at?: string | undefined;
26924
+ /** Errors associated with the `acs_credential`. */
26925
+ errors: Array<{
26926
+ error_code: string;
26927
+ message: string;
26928
+ }>;
26929
+ /** Warnings associated with the `acs_credential`. */
26930
+ warnings: Array<{
26931
+ /** Date and time at which Seam created the warning. */
26932
+ created_at: string;
26933
+ /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */
26934
+ message: string;
26935
+ /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */
26936
+ warning_code: 'waiting_to_be_issued';
26937
+ } | {
26938
+ /** Date and time at which Seam created the warning. */
26939
+ created_at: string;
26940
+ /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */
26941
+ message: string;
26942
+ /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */
26943
+ warning_code: 'schedule_externally_modified';
26944
+ } | {
26945
+ /** Date and time at which Seam created the warning. */
26946
+ created_at: string;
26947
+ /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */
26948
+ message: string;
26949
+ /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */
26950
+ warning_code: 'schedule_modified';
26951
+ } | {
26952
+ /** Date and time at which Seam created the warning. */
26953
+ created_at: string;
26954
+ /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */
26955
+ message: string;
26956
+ /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */
26957
+ warning_code: 'being_deleted';
26958
+ }>;
26959
+ /** Indicates whether the credential is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */
26960
+ is_multi_phone_sync_credential?: boolean | undefined;
26961
+ /** Indicates whether the latest state of the credential has been synced from Seam to the provider. */
26962
+ is_latest_desired_state_synced_with_provider?: boolean | undefined;
26963
+ /** Date and time at which the state of the credential was most recently synced from Seam to the provider. */
26964
+ latest_desired_state_synced_with_provider_at?: string | undefined;
26965
+ /** Visionline-specific metadata for the credential. */
26966
+ visionline_metadata?: {
26967
+ card_function_type: 'guest' | 'staff';
26968
+ joiner_acs_credential_ids?: string[] | undefined;
26969
+ guest_acs_entrance_ids?: string[] | undefined;
26970
+ common_acs_entrance_ids?: string[] | undefined;
26971
+ is_valid?: boolean | undefined;
26972
+ auto_join?: boolean | undefined;
26973
+ card_id?: string | undefined;
26974
+ credential_id?: string | undefined;
26975
+ } | undefined;
26976
+ is_managed: false;
26977
+ };
26978
+ } | {
26979
+ /** The ID of the action attempt. */
26980
+ action_attempt_id: string;
26981
+ status: 'error';
26982
+ result: null;
26983
+ action_type: 'ENCODE_CREDENTIAL';
26984
+ error: {
26985
+ type: 'uncategorized_error';
26986
+ message: string;
26987
+ } | {
26988
+ type: 'action_attempt_expired';
26989
+ message: string;
26990
+ } | {
26991
+ type: 'no_card_on_encoder';
26992
+ message: string;
26993
+ } | {
26994
+ type: 'incompatible_card_format';
26995
+ message: string;
26996
+ };
26997
+ } | {
26998
+ /** The ID of the action attempt. */
26999
+ action_attempt_id: string;
27000
+ status: 'pending';
27001
+ result: null;
27002
+ error: null;
27003
+ action_type: 'RESET_SANDBOX_WORKSPACE';
27004
+ } | {
27005
+ /** The ID of the action attempt. */
27006
+ action_attempt_id: string;
27007
+ status: 'success';
27008
+ error: null;
27009
+ action_type: 'RESET_SANDBOX_WORKSPACE';
27010
+ result: {};
27011
+ } | {
27012
+ /** The ID of the action attempt. */
27013
+ action_attempt_id: string;
27014
+ status: 'error';
27015
+ result: null;
27016
+ action_type: 'RESET_SANDBOX_WORKSPACE';
27017
+ error: {
27018
+ type: string;
27019
+ message: string;
27020
+ };
27021
+ } | {
27022
+ /** The ID of the action attempt. */
27023
+ action_attempt_id: string;
27024
+ status: 'pending';
27025
+ result: null;
27026
+ error: null;
27027
+ action_type: 'SET_COOL';
27028
+ } | {
27029
+ /** The ID of the action attempt. */
27030
+ action_attempt_id: string;
27031
+ status: 'success';
27032
+ error: null;
27033
+ action_type: 'SET_COOL';
27034
+ result: {};
27035
+ } | {
27036
+ /** The ID of the action attempt. */
27037
+ action_attempt_id: string;
27038
+ status: 'error';
27039
+ result: null;
27040
+ action_type: 'SET_COOL';
27041
+ error: {
27042
+ type: string;
27043
+ message: string;
27044
+ };
27045
+ } | {
27046
+ /** The ID of the action attempt. */
27047
+ action_attempt_id: string;
27048
+ status: 'pending';
27049
+ result: null;
27050
+ error: null;
27051
+ action_type: 'SET_HEAT';
27052
+ } | {
27053
+ /** The ID of the action attempt. */
27054
+ action_attempt_id: string;
27055
+ status: 'success';
27056
+ error: null;
27057
+ action_type: 'SET_HEAT';
27058
+ result: {};
27059
+ } | {
27060
+ /** The ID of the action attempt. */
27061
+ action_attempt_id: string;
27062
+ status: 'error';
27063
+ result: null;
27064
+ action_type: 'SET_HEAT';
27065
+ error: {
27066
+ type: string;
27067
+ message: string;
27068
+ };
27069
+ } | {
27070
+ /** The ID of the action attempt. */
27071
+ action_attempt_id: string;
27072
+ status: 'pending';
27073
+ result: null;
27074
+ error: null;
27075
+ action_type: 'SET_HEAT_COOL';
27076
+ } | {
27077
+ /** The ID of the action attempt. */
27078
+ action_attempt_id: string;
27079
+ status: 'success';
27080
+ error: null;
27081
+ action_type: 'SET_HEAT_COOL';
27082
+ result: {};
27083
+ } | {
27084
+ /** The ID of the action attempt. */
27085
+ action_attempt_id: string;
27086
+ status: 'error';
27087
+ result: null;
27088
+ action_type: 'SET_HEAT_COOL';
27089
+ error: {
27090
+ type: string;
27091
+ message: string;
27092
+ };
27093
+ } | {
27094
+ /** The ID of the action attempt. */
27095
+ action_attempt_id: string;
27096
+ status: 'pending';
27097
+ result: null;
27098
+ error: null;
27099
+ action_type: 'SET_FAN_MODE';
27100
+ } | {
27101
+ /** The ID of the action attempt. */
27102
+ action_attempt_id: string;
27103
+ status: 'success';
27104
+ error: null;
27105
+ action_type: 'SET_FAN_MODE';
27106
+ result: {};
27107
+ } | {
27108
+ /** The ID of the action attempt. */
27109
+ action_attempt_id: string;
27110
+ status: 'error';
27111
+ result: null;
27112
+ action_type: 'SET_FAN_MODE';
27113
+ error: {
27114
+ type: string;
27115
+ message: string;
27116
+ };
27117
+ } | {
27118
+ /** The ID of the action attempt. */
27119
+ action_attempt_id: string;
27120
+ status: 'pending';
27121
+ result: null;
27122
+ error: null;
27123
+ action_type: 'SET_THERMOSTAT_OFF';
27124
+ } | {
27125
+ /** The ID of the action attempt. */
27126
+ action_attempt_id: string;
27127
+ status: 'success';
27128
+ error: null;
27129
+ action_type: 'SET_THERMOSTAT_OFF';
27130
+ result: {};
27131
+ } | {
27132
+ /** The ID of the action attempt. */
27133
+ action_attempt_id: string;
27134
+ status: 'error';
27135
+ result: null;
27136
+ action_type: 'SET_THERMOSTAT_OFF';
27137
+ error: {
27138
+ type: string;
27139
+ message: string;
27140
+ };
27141
+ } | {
27142
+ /** The ID of the action attempt. */
27143
+ action_attempt_id: string;
27144
+ status: 'pending';
27145
+ result: null;
27146
+ error: null;
27147
+ action_type: 'ACTIVATE_CLIMATE_PRESET';
27148
+ } | {
27149
+ /** The ID of the action attempt. */
27150
+ action_attempt_id: string;
27151
+ status: 'success';
27152
+ error: null;
27153
+ action_type: 'ACTIVATE_CLIMATE_PRESET';
27154
+ result: {};
27155
+ } | {
27156
+ /** The ID of the action attempt. */
27157
+ action_attempt_id: string;
27158
+ status: 'error';
27159
+ result: null;
27160
+ action_type: 'ACTIVATE_CLIMATE_PRESET';
27161
+ error: {
27162
+ type: string;
27163
+ message: string;
27164
+ };
27165
+ } | {
27166
+ /** The ID of the action attempt. */
27167
+ action_attempt_id: string;
27168
+ status: 'pending';
27169
+ result: null;
27170
+ error: null;
27171
+ action_type: 'SYNC_ACCESS_CODES';
27172
+ } | {
27173
+ /** The ID of the action attempt. */
27174
+ action_attempt_id: string;
27175
+ status: 'success';
27176
+ error: null;
27177
+ action_type: 'SYNC_ACCESS_CODES';
27178
+ result: {};
27179
+ } | {
27180
+ /** The ID of the action attempt. */
27181
+ action_attempt_id: string;
27182
+ status: 'error';
27183
+ result: null;
27184
+ action_type: 'SYNC_ACCESS_CODES';
27185
+ error: {
27186
+ type: string;
27187
+ message: string;
27188
+ };
27189
+ } | {
27190
+ /** The ID of the action attempt. */
27191
+ action_attempt_id: string;
27192
+ status: 'pending';
27193
+ result: null;
27194
+ error: null;
27195
+ action_type: 'CREATE_ACCESS_CODE';
27196
+ } | {
27197
+ /** The ID of the action attempt. */
27198
+ action_attempt_id: string;
27199
+ status: 'success';
27200
+ error: null;
27201
+ action_type: 'CREATE_ACCESS_CODE';
27202
+ result: {
27203
+ access_code?: any;
27204
+ };
27205
+ } | {
27206
+ /** The ID of the action attempt. */
27207
+ action_attempt_id: string;
27208
+ status: 'error';
27209
+ result: null;
27210
+ action_type: 'CREATE_ACCESS_CODE';
27211
+ error: {
27212
+ type: string;
27213
+ message: string;
27214
+ };
27215
+ } | {
27216
+ /** The ID of the action attempt. */
27217
+ action_attempt_id: string;
27218
+ status: 'pending';
27219
+ result: null;
27220
+ error: null;
27221
+ action_type: 'DELETE_ACCESS_CODE';
27222
+ } | {
27223
+ /** The ID of the action attempt. */
27224
+ action_attempt_id: string;
27225
+ status: 'success';
27226
+ error: null;
27227
+ action_type: 'DELETE_ACCESS_CODE';
27228
+ result: {};
27229
+ } | {
27230
+ /** The ID of the action attempt. */
27231
+ action_attempt_id: string;
27232
+ status: 'error';
27233
+ result: null;
27234
+ action_type: 'DELETE_ACCESS_CODE';
27235
+ error: {
27236
+ type: string;
27237
+ message: string;
27238
+ };
27239
+ } | {
27240
+ /** The ID of the action attempt. */
27241
+ action_attempt_id: string;
27242
+ status: 'pending';
27243
+ result: null;
27244
+ error: null;
27245
+ action_type: 'UPDATE_ACCESS_CODE';
27246
+ } | {
27247
+ /** The ID of the action attempt. */
27248
+ action_attempt_id: string;
27249
+ status: 'success';
27250
+ error: null;
27251
+ action_type: 'UPDATE_ACCESS_CODE';
27252
+ result: {
27253
+ access_code?: any;
27254
+ };
27255
+ } | {
27256
+ /** The ID of the action attempt. */
27257
+ action_attempt_id: string;
27258
+ status: 'error';
27259
+ result: null;
27260
+ action_type: 'UPDATE_ACCESS_CODE';
27261
+ error: {
27262
+ type: string;
27263
+ message: string;
27264
+ };
27265
+ } | {
27266
+ /** The ID of the action attempt. */
27267
+ action_attempt_id: string;
27268
+ status: 'pending';
27269
+ result: null;
27270
+ error: null;
27271
+ action_type: 'CREATE_NOISE_THRESHOLD';
27272
+ } | {
27273
+ /** The ID of the action attempt. */
27274
+ action_attempt_id: string;
27275
+ status: 'success';
27276
+ error: null;
27277
+ action_type: 'CREATE_NOISE_THRESHOLD';
27278
+ result: {
27279
+ noise_threshold?: any;
27280
+ };
27281
+ } | {
27282
+ /** The ID of the action attempt. */
27283
+ action_attempt_id: string;
27284
+ status: 'error';
27285
+ result: null;
27286
+ action_type: 'CREATE_NOISE_THRESHOLD';
27287
+ error: {
27288
+ type: string;
27289
+ message: string;
27290
+ };
27291
+ } | {
27292
+ /** The ID of the action attempt. */
27293
+ action_attempt_id: string;
27294
+ status: 'pending';
27295
+ result: null;
27296
+ error: null;
27297
+ action_type: 'DELETE_NOISE_THRESHOLD';
27298
+ } | {
27299
+ /** The ID of the action attempt. */
27300
+ action_attempt_id: string;
27301
+ status: 'success';
27302
+ error: null;
27303
+ action_type: 'DELETE_NOISE_THRESHOLD';
27304
+ result: {};
27305
+ } | {
27306
+ /** The ID of the action attempt. */
27307
+ action_attempt_id: string;
27308
+ status: 'error';
27309
+ result: null;
27310
+ action_type: 'DELETE_NOISE_THRESHOLD';
27311
+ error: {
27312
+ type: string;
27313
+ message: string;
27314
+ };
27315
+ } | {
27316
+ /** The ID of the action attempt. */
27317
+ action_attempt_id: string;
27318
+ status: 'pending';
27319
+ result: null;
27320
+ error: null;
27321
+ action_type: 'UPDATE_NOISE_THRESHOLD';
27322
+ } | {
27323
+ /** The ID of the action attempt. */
27324
+ action_attempt_id: string;
27325
+ status: 'success';
27326
+ error: null;
27327
+ action_type: 'UPDATE_NOISE_THRESHOLD';
27328
+ result: {
27329
+ noise_threshold?: any;
27330
+ };
27331
+ } | {
27332
+ /** The ID of the action attempt. */
27333
+ action_attempt_id: string;
27334
+ status: 'error';
27335
+ result: null;
27336
+ action_type: 'UPDATE_NOISE_THRESHOLD';
27337
+ error: {
27338
+ type: string;
27339
+ message: string;
27340
+ };
27341
+ };
27342
+ };
27343
+ };
26474
27344
  '/thermostats/set_temperature_threshold': {
26475
27345
  route: '/thermostats/set_temperature_threshold';
26476
27346
  method: 'POST' | 'PATCH';
@@ -27941,7 +28811,7 @@ export interface Routes {
27941
28811
  /** Date and time at which the user's access starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */
27942
28812
  starts_at: string;
27943
28813
  /** Date and time at which the user's access ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */
27944
- ends_at: string;
28814
+ ends_at: string | null;
27945
28815
  } | undefined;
27946
28816
  /** ID of the user identity associated with the `acs_user`. */
27947
28817
  user_identity_id?: string | undefined;