seam 2.164.0 → 2.166.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 29b629f49ba1b506fe148294d4847134e07fec1cc84b75ab4308a72260dfc245
4
- data.tar.gz: 2d8ad86b113c0791a9558a84d8fd38561b8be20f2b89a2df6a3ee4bd606d4200
3
+ metadata.gz: 5a1766e6be523652f696d57db1da959002d72ffb446a531a0fc55a75e1a77d0d
4
+ data.tar.gz: 80591311035a9fde297bbd39e15f1c8d87685c9b3f2e117349d525476bc7c776
5
5
  SHA512:
6
- metadata.gz: 1971e10d29dec2cd3586a9cb4ea46695057ad9c39fae07ef766438b38abf5c1cd705ba48458c3d06cb44570553a0e3a87eb2650091d34f7ae5ffb1c505135d96
7
- data.tar.gz: 3ea56b8dd69b13a194a0e6b93edd5a45e5561d250189c6267fbbdd9d93fa0b9e4b9c1291d4153d066036ac6ca399a91c68861a438da38dc1da643f41ab53d904
6
+ metadata.gz: 0a911571db84e8e849bd2e5e7d20234fffadebdba4e116759e6a44a741e1ac607bd4631f7071df457e2cce8f75259b82191c7bb8a1a60a7d7e5caa0fccc57c50
7
+ data.tar.gz: 1eb9b6a9e35557ea83a9547e8a1349df079dbe60d74de7ba29ac17fc9ce67f03216b6a22be8db575d52ac4eef44ceb60f02d9e22e5aada590b2e84dc5db29fe8
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- seam (2.164.0)
4
+ seam (2.166.0)
5
5
  faraday (~> 2.7)
6
6
  faraday-retry (~> 2.2)
7
7
  svix (~> 1.30)
@@ -171,7 +171,7 @@ CHECKSUMS
171
171
  rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db
172
172
  rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834
173
173
  ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
174
- seam (2.164.0)
174
+ seam (2.166.0)
175
175
  simplecov (1.1.1) sha256=25825ef13f0b2e74694d769817dad6ab8e90131dabdaa666e522fea105521e78
176
176
  simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6
177
177
  standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787
@@ -169,8 +169,10 @@ module Seam
169
169
  # Device whose access code could not be revoked.
170
170
  # @return [String]
171
171
  attr_accessor :device_id
172
- # Reason the access code could not be revoked (e.g. `offline_access_code_not_revocable`).
172
+ # Reason the access code could not be revoked.
173
173
  # @return [String]
174
+ # Known values:
175
+ # - `offline_access_code_not_revocable`
174
176
  attr_accessor :error_code
175
177
  # Human-readable description of why revocation failed.
176
178
  # @return [String]
@@ -211,10 +213,13 @@ module Seam
211
213
  date_accessor :created_at
212
214
  end
213
215
 
214
- # Indicates that the requested PIN code was already in use on a device, so a different code was assigned.
216
+ # Indicates that the requested PIN code could not be used, so a different code was assigned. For example, the code was already in use on a device, or the access system rejected it because it did not meet its PIN rules.
215
217
  class RequestedCodeUnavailable < Warnings
216
- # ID of the device where the requested code was unavailable.
217
- # @return [String]
218
+ # ID of the access method whose requested code was unavailable. Present when an access system, such as Salto KS, assigned a different code.
219
+ # @return [String, nil]
220
+ attr_accessor :access_method_id
221
+ # ID of the device where the requested code was unavailable. Present when the code was set directly on a device.
222
+ # @return [String, nil]
218
223
  attr_accessor :device_id
219
224
  # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
220
225
  # @return [String]
@@ -189,6 +189,27 @@ module Seam
189
189
  date_accessor :created_at
190
190
  end
191
191
 
192
+ # Indicates that the access system could not use the PIN code requested for this [access method](https://www.seam.co/docs/use-cases/granting-access/creating-an-access-grant), for example because it did not meet the access system's PIN rules, so the access system assigned a different code. Give the recipient the assigned code.
193
+ class RequestedCodeUnavailable < Warnings
194
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
195
+ # @return [String]
196
+ attr_accessor :message
197
+ # The PIN code that was assigned instead.
198
+ # @return [String]
199
+ attr_accessor :new_code
200
+ # The originally requested PIN code that could not be used.
201
+ # @return [String]
202
+ attr_accessor :original_code
203
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
204
+ # @return [String]
205
+ # Known values:
206
+ # - `requested_code_unavailable`
207
+ attr_accessor :warning_code
208
+ # Date and time at which Seam created the warning.
209
+ # @return [Time]
210
+ date_accessor :created_at
211
+ end
212
+
192
213
  # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
193
214
  # @return [String]
194
215
  attr_accessor :message
@@ -201,6 +222,7 @@ module Seam
201
222
  # - `delay_in_issuing`
202
223
  # - `user_identity_missing_email_address`
203
224
  # - `user_identity_missing_phone_number`
225
+ # - `requested_code_unavailable`
204
226
  attr_accessor :warning_code
205
227
  # Date and time at which Seam created the warning.
206
228
  # @return [Time]
@@ -212,7 +234,8 @@ module Seam
212
234
  "pulled_backup_access_code" => PulledBackupAccessCode,
213
235
  "delay_in_issuing" => DelayInIssuing,
214
236
  "user_identity_missing_email_address" => UserIdentityMissingEmailAddress,
215
- "user_identity_missing_phone_number" => UserIdentityMissingPhoneNumber
237
+ "user_identity_missing_phone_number" => UserIdentityMissingPhoneNumber,
238
+ "requested_code_unavailable" => RequestedCodeUnavailable
216
239
  }.freeze
217
240
  end
218
241
 
@@ -258,7 +281,7 @@ module Seam
258
281
  # Indicates whether the access method is ready for card assignment. This is true when the access method is in card mode, has not yet been issued, and the system supports credential assignment.
259
282
  # @return [Boolean, nil]
260
283
  attr_accessor :is_ready_for_assignment
261
- # Indicates whether the access method is ready to be encoded. This is true when the credential has been created and the card has not yet been issued.
284
+ # Indicates whether the access method is ready to be encoded. This is true when the card has not yet been issued and the access system has received all the access the card needs. While it is false, `pending_mutations` contains `waiting_for_access_on_acs_system`.
262
285
  # @return [Boolean, nil]
263
286
  attr_accessor :is_ready_for_encoding
264
287
  # Access method mode. Supported values: `code`, `card`, `mobile_key`, `cloud_key`.
@@ -101,9 +101,27 @@ module Seam
101
101
  attr_accessor :access_point_profile
102
102
  end
103
103
 
104
+ # Known `error_code` values load as subclasses; unknown values remain Errors instances for forward compatibility.
104
105
  class Errors < BaseResource
106
+ # Indicates that the [entrance](https://www.seam.co/docs/low-level-apis/access-systems/retrieving-entrance-details) was removed from the connected account, so Seam can no longer sync it.
107
+ class EntranceRemoved < Errors
108
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
109
+ # @return [String]
110
+ # Known values:
111
+ # - `entrance_removed`
112
+ attr_accessor :error_code
113
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
114
+ # @return [String]
115
+ attr_accessor :message
116
+ # Date and time at which Seam created the error.
117
+ # @return [Time]
118
+ date_accessor :created_at
119
+ end
120
+
105
121
  # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
106
122
  # @return [String]
123
+ # Known values:
124
+ # - `entrance_removed`
107
125
  attr_accessor :error_code
108
126
  # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
109
127
  # @return [String]
@@ -111,6 +129,10 @@ module Seam
111
129
  # Date and time at which Seam created the error.
112
130
  # @return [Time]
113
131
  date_accessor :created_at
132
+
133
+ discriminated_by :error_code, {
134
+ "entrance_removed" => EntranceRemoved
135
+ }.freeze
114
136
  end
115
137
 
116
138
  class HotekMetadata < BaseResource
@@ -78,6 +78,21 @@ module Seam
78
78
  date_accessor :created_at
79
79
  end
80
80
 
81
+ # Indicates that the access control system has reached the maximum number of users its license allows, so Seam cannot create new users on it and access for new guests is not provisioned. Remove unused users from the access control system or increase its license. The error clears once Seam can create users again.
82
+ class UserLicenseLimitReached < Errors
83
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
84
+ # @return [String]
85
+ # Known values:
86
+ # - `user_license_limit_reached`
87
+ attr_accessor :error_code
88
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
89
+ # @return [String]
90
+ attr_accessor :message
91
+ # Date and time at which Seam created the error.
92
+ # @return [Time]
93
+ date_accessor :created_at
94
+ end
95
+
81
96
  # Indicates that the provider's system backing this [access control system](https://www.seam.co/docs/low-level-apis/access-systems) is not letting Seam act on it, so access cannot be managed until this is resolved. The error message says which of two causes applies. Either Seam's integration user does not have sufficient permissions on the provider's system, or has been suspended there: grant the integration user the required permissions in the provider's system, or reauthorize the connected account in Seam. Or the provider account or site does not have a valid subscription with the provider: set up or renew that subscription with the provider.
82
97
  class InsufficientPermissions < Errors
83
98
  # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
@@ -160,6 +175,7 @@ module Seam
160
175
  # - `bridge_disconnected`
161
176
  # - `visionline_instance_unreachable`
162
177
  # - `salto_ks_subscription_limit_exceeded`
178
+ # - `user_license_limit_reached`
163
179
  # - `insufficient_permissions`
164
180
  # - `acs_system_disconnected`
165
181
  # - `account_disconnected`
@@ -178,6 +194,7 @@ module Seam
178
194
  "bridge_disconnected" => BridgeDisconnected,
179
195
  "visionline_instance_unreachable" => VisionlineInstanceUnreachable,
180
196
  "salto_ks_subscription_limit_exceeded" => SaltoKsSubscriptionLimitExceeded,
197
+ "user_license_limit_reached" => UserLicenseLimitReached,
181
198
  "insufficient_permissions" => InsufficientPermissions,
182
199
  "acs_system_disconnected" => AcsSystemDisconnected,
183
200
  "account_disconnected" => AccountDisconnected,
@@ -974,20 +974,21 @@ module Seam
974
974
  end
975
975
 
976
976
  # Previous access time configuration.
977
- # @return [From]
977
+ # @return [From, nil]
978
978
  resource_accessor :from, From
979
979
  # New access time configuration.
980
- # @return [To]
980
+ # @return [To, nil]
981
981
  resource_accessor :to, To
982
982
  # Detailed description of the mutation.
983
983
  # @return [String]
984
984
  attr_accessor :message
985
- # Mutation code to indicate that Seam is in the process of updating the access times for this access method.
985
+ # Mutation code to indicate that the access system has not yet received all the access this card needs, so the card is not ready to be encoded.
986
986
  # @return [String]
987
987
  # Known values:
988
988
  # - `provisioning_access`
989
989
  # - `revoking_access`
990
990
  # - `updating_access_times`
991
+ # - `waiting_for_access_on_acs_system`
991
992
  attr_accessor :mutation_code
992
993
  # Date and time at which the mutation was created.
993
994
  # @return [Time]
@@ -1007,10 +1008,17 @@ module Seam
1007
1008
  # - `delay_in_issuing`
1008
1009
  # - `user_identity_missing_email_address`
1009
1010
  # - `user_identity_missing_phone_number`
1011
+ # - `requested_code_unavailable`
1010
1012
  attr_accessor :warning_code
1011
1013
  # ID of the original access method from which this backup access method was split, if applicable.
1012
1014
  # @return [String, nil]
1013
1015
  attr_accessor :original_access_method_id
1016
+ # The PIN code that was assigned instead.
1017
+ # @return [String, nil]
1018
+ attr_accessor :new_code
1019
+ # The originally requested PIN code that could not be used.
1020
+ # @return [String, nil]
1021
+ attr_accessor :original_code
1014
1022
  # Date and time at which Seam created the warning.
1015
1023
  # @return [Time]
1016
1024
  date_accessor :created_at
@@ -1058,7 +1066,7 @@ module Seam
1058
1066
  # Indicates whether the access method is ready for card assignment. This is true when the access method is in card mode, has not yet been issued, and the system supports credential assignment.
1059
1067
  # @return [Boolean, nil]
1060
1068
  attr_accessor :is_ready_for_assignment
1061
- # Indicates whether the access method is ready to be encoded. This is true when the credential has been created and the card has not yet been issued.
1069
+ # Indicates whether the access method is ready to be encoded. This is true when the card has not yet been issued and the access system has received all the access the card needs. While it is false, `pending_mutations` contains `waiting_for_access_on_acs_system`.
1062
1070
  # @return [Boolean, nil]
1063
1071
  attr_accessor :is_ready_for_encoding
1064
1072
  # Access method mode. Supported values: `code`, `card`, `mobile_key`, `cloud_key`.
@@ -1505,6 +1513,212 @@ module Seam
1505
1513
  attr_accessor :status
1506
1514
  end
1507
1515
 
1516
+ # Setting the speaker volume is pending.
1517
+ class SetSpeakerVolume < ActionAttempt
1518
+ class Error < BaseResource
1519
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
1520
+ # @return [String]
1521
+ attr_accessor :message
1522
+ # Type of the error.
1523
+ # @return [String]
1524
+ attr_accessor :type
1525
+ end
1526
+
1527
+ class Result < BaseResource
1528
+ end
1529
+
1530
+ # Error associated with the action.
1531
+ # @return [Error, nil]
1532
+ # Only present when `status` is `error`; `nil` otherwise.
1533
+ resource_accessor :error, Error
1534
+ available_only_for_statuses :error, ["error"]
1535
+ # Result of the action.
1536
+ # @return [Result, nil]
1537
+ # Only present when `status` is `success`; `nil` otherwise.
1538
+ resource_accessor :result, Result
1539
+ available_only_for_statuses :result, ["success"]
1540
+ # ID of the action attempt.
1541
+ # @return [String]
1542
+ attr_accessor :action_attempt_id
1543
+ # Action attempt to track the status of setting the volume on a speaker.
1544
+ # @return [String]
1545
+ # Known values:
1546
+ # - `SET_SPEAKER_VOLUME`
1547
+ attr_accessor :action_type
1548
+ # @return [String]
1549
+ # Known values:
1550
+ # - `success`
1551
+ # - `pending`
1552
+ # - `error`
1553
+ attr_accessor :status
1554
+ end
1555
+
1556
+ # Muting or unmuting the speaker is pending.
1557
+ class SetSpeakerMute < ActionAttempt
1558
+ class Error < BaseResource
1559
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
1560
+ # @return [String]
1561
+ attr_accessor :message
1562
+ # Type of the error.
1563
+ # @return [String]
1564
+ attr_accessor :type
1565
+ end
1566
+
1567
+ class Result < BaseResource
1568
+ end
1569
+
1570
+ # Error associated with the action.
1571
+ # @return [Error, nil]
1572
+ # Only present when `status` is `error`; `nil` otherwise.
1573
+ resource_accessor :error, Error
1574
+ available_only_for_statuses :error, ["error"]
1575
+ # Result of the action.
1576
+ # @return [Result, nil]
1577
+ # Only present when `status` is `success`; `nil` otherwise.
1578
+ resource_accessor :result, Result
1579
+ available_only_for_statuses :result, ["success"]
1580
+ # ID of the action attempt.
1581
+ # @return [String]
1582
+ attr_accessor :action_attempt_id
1583
+ # Action attempt to track the status of muting or unmuting a speaker.
1584
+ # @return [String]
1585
+ # Known values:
1586
+ # - `SET_SPEAKER_MUTE`
1587
+ attr_accessor :action_type
1588
+ # @return [String]
1589
+ # Known values:
1590
+ # - `success`
1591
+ # - `pending`
1592
+ # - `error`
1593
+ attr_accessor :status
1594
+ end
1595
+
1596
+ # Pausing playback on the speaker is pending.
1597
+ class PauseSpeakerPlayback < ActionAttempt
1598
+ class Error < BaseResource
1599
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
1600
+ # @return [String]
1601
+ attr_accessor :message
1602
+ # Type of the error.
1603
+ # @return [String]
1604
+ attr_accessor :type
1605
+ end
1606
+
1607
+ class Result < BaseResource
1608
+ # IDs of the speakers whose playback was paused, including speakers grouped with the requested speaker.
1609
+ # @return [Array<String>]
1610
+ attr_accessor :affected_device_ids
1611
+ end
1612
+
1613
+ # Error associated with the action.
1614
+ # @return [Error, nil]
1615
+ # Only present when `status` is `error`; `nil` otherwise.
1616
+ resource_accessor :error, Error
1617
+ available_only_for_statuses :error, ["error"]
1618
+ # Result of the action.
1619
+ # @return [Result, nil]
1620
+ # Only present when `status` is `success`; `nil` otherwise.
1621
+ resource_accessor :result, Result
1622
+ available_only_for_statuses :result, ["success"]
1623
+ # ID of the action attempt.
1624
+ # @return [String]
1625
+ attr_accessor :action_attempt_id
1626
+ # Action attempt to track the status of pausing playback on a speaker.
1627
+ # @return [String]
1628
+ # Known values:
1629
+ # - `PAUSE_SPEAKER_PLAYBACK`
1630
+ attr_accessor :action_type
1631
+ # @return [String]
1632
+ # Known values:
1633
+ # - `success`
1634
+ # - `pending`
1635
+ # - `error`
1636
+ attr_accessor :status
1637
+ end
1638
+
1639
+ # Resuming playback on the speaker is pending.
1640
+ class ResumeSpeakerPlayback < ActionAttempt
1641
+ class Error < BaseResource
1642
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
1643
+ # @return [String]
1644
+ attr_accessor :message
1645
+ # Type of the error.
1646
+ # @return [String]
1647
+ attr_accessor :type
1648
+ end
1649
+
1650
+ class Result < BaseResource
1651
+ # IDs of the speakers whose playback was resumed, including speakers grouped with the requested speaker.
1652
+ # @return [Array<String>]
1653
+ attr_accessor :affected_device_ids
1654
+ end
1655
+
1656
+ # Error associated with the action.
1657
+ # @return [Error, nil]
1658
+ # Only present when `status` is `error`; `nil` otherwise.
1659
+ resource_accessor :error, Error
1660
+ available_only_for_statuses :error, ["error"]
1661
+ # Result of the action.
1662
+ # @return [Result, nil]
1663
+ # Only present when `status` is `success`; `nil` otherwise.
1664
+ resource_accessor :result, Result
1665
+ available_only_for_statuses :result, ["success"]
1666
+ # ID of the action attempt.
1667
+ # @return [String]
1668
+ attr_accessor :action_attempt_id
1669
+ # Action attempt to track the status of resuming playback on a speaker.
1670
+ # @return [String]
1671
+ # Known values:
1672
+ # - `RESUME_SPEAKER_PLAYBACK`
1673
+ attr_accessor :action_type
1674
+ # @return [String]
1675
+ # Known values:
1676
+ # - `success`
1677
+ # - `pending`
1678
+ # - `error`
1679
+ attr_accessor :status
1680
+ end
1681
+
1682
+ # Playing a chime on the speaker is pending.
1683
+ class PlaySpeakerChime < ActionAttempt
1684
+ class Error < BaseResource
1685
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
1686
+ # @return [String]
1687
+ attr_accessor :message
1688
+ # Type of the error.
1689
+ # @return [String]
1690
+ attr_accessor :type
1691
+ end
1692
+
1693
+ class Result < BaseResource
1694
+ end
1695
+
1696
+ # Error associated with the action.
1697
+ # @return [Error, nil]
1698
+ # Only present when `status` is `error`; `nil` otherwise.
1699
+ resource_accessor :error, Error
1700
+ available_only_for_statuses :error, ["error"]
1701
+ # Result of the action.
1702
+ # @return [Result, nil]
1703
+ # Only present when `status` is `success`; `nil` otherwise.
1704
+ resource_accessor :result, Result
1705
+ available_only_for_statuses :result, ["success"]
1706
+ # ID of the action attempt.
1707
+ # @return [String]
1708
+ attr_accessor :action_attempt_id
1709
+ # Action attempt to track the status of playing a chime on a speaker.
1710
+ # @return [String]
1711
+ # Known values:
1712
+ # - `PLAY_SPEAKER_CHIME`
1713
+ attr_accessor :action_type
1714
+ # @return [String]
1715
+ # Known values:
1716
+ # - `success`
1717
+ # - `pending`
1718
+ # - `error`
1719
+ attr_accessor :status
1720
+ end
1721
+
1508
1722
  class SyncAccessCodes < ActionAttempt
1509
1723
  class Error < BaseResource
1510
1724
  # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
@@ -1819,6 +2033,11 @@ module Seam
1819
2033
  # - `PUSH_THERMOSTAT_PROGRAMS`
1820
2034
  # - `CONFIGURE_AUTO_LOCK`
1821
2035
  # - `CONVERT_ACCESS_CODE_TO_MANAGED`
2036
+ # - `SET_SPEAKER_VOLUME`
2037
+ # - `SET_SPEAKER_MUTE`
2038
+ # - `PAUSE_SPEAKER_PLAYBACK`
2039
+ # - `RESUME_SPEAKER_PLAYBACK`
2040
+ # - `PLAY_SPEAKER_CHIME`
1822
2041
  # - `SYNC_ACCESS_CODES`
1823
2042
  # - `CREATE_ACCESS_CODE`
1824
2043
  # - `DELETE_ACCESS_CODE`
@@ -1851,6 +2070,11 @@ module Seam
1851
2070
  "PUSH_THERMOSTAT_PROGRAMS" => PushThermostatPrograms,
1852
2071
  "CONFIGURE_AUTO_LOCK" => ConfigureAutoLock,
1853
2072
  "CONVERT_ACCESS_CODE_TO_MANAGED" => ConvertAccessCodeToManaged,
2073
+ "SET_SPEAKER_VOLUME" => SetSpeakerVolume,
2074
+ "SET_SPEAKER_MUTE" => SetSpeakerMute,
2075
+ "PAUSE_SPEAKER_PLAYBACK" => PauseSpeakerPlayback,
2076
+ "RESUME_SPEAKER_PLAYBACK" => ResumeSpeakerPlayback,
2077
+ "PLAY_SPEAKER_CHIME" => PlaySpeakerChime,
1854
2078
  "SYNC_ACCESS_CODES" => SyncAccessCodes,
1855
2079
  "CREATE_ACCESS_CODE" => CreateAccessCode,
1856
2080
  "DELETE_ACCESS_CODE" => DeleteAccessCode,
@@ -22,6 +22,7 @@ module Seam
22
22
  # - `noise_sensor`
23
23
  # - `access_control`
24
24
  # - `camera`
25
+ # - `speaker`
25
26
  attr_accessor :accepted_capabilities
26
27
  # List of accepted [provider keys](https://www.seam.co/docs/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews).
27
28
  # @return [Array<String>]
@@ -355,6 +355,7 @@ module Seam
355
355
  # - `noise_sensor`
356
356
  # - `access_control`
357
357
  # - `camera`
358
+ # - `speaker`
358
359
  attr_accessor :accepted_capabilities
359
360
  # Type of connected account.
360
361
  # @return [String, nil]
@@ -1135,7 +1135,7 @@ module Seam
1135
1135
  # Device name for a Sensi device.
1136
1136
  # @return [String, nil]
1137
1137
  attr_accessor :device_name
1138
- # Set to true when the device does not support the /dual-setpoints API endpoint.
1138
+ # Deprecated. Seam no longer sets this field.
1139
1139
  # @return [Boolean, nil]
1140
1140
  attr_accessor :dual_setpoints_not_supported
1141
1141
  # Product type for a Sensi device.
@@ -1158,6 +1158,30 @@ module Seam
1158
1158
  attr_accessor :model
1159
1159
  end
1160
1160
 
1161
+ class SonosMetadata < BaseResource
1162
+ # Models of the speakers bonded to this speaker, such as surrounds or a subwoofer.
1163
+ # @return [Array<String>]
1164
+ attr_accessor :bonded_member_models
1165
+ # Color of the speaker, as reported by Sonos.
1166
+ # @return [String, nil]
1167
+ attr_accessor :color
1168
+ # ID of the Sonos household that the speaker belongs to.
1169
+ # @return [String, nil]
1170
+ attr_accessor :household_id
1171
+ # Model name of the speaker, as reported by Sonos.
1172
+ # @return [String, nil]
1173
+ attr_accessor :model_display_name
1174
+ # ID of the Sonos player for the speaker.
1175
+ # @return [String, nil]
1176
+ attr_accessor :player_id
1177
+ # Name of the speaker, as set in the Sonos app.
1178
+ # @return [String, nil]
1179
+ attr_accessor :player_name
1180
+ # Software version running on the speaker.
1181
+ # @return [String, nil]
1182
+ attr_accessor :software_version
1183
+ end
1184
+
1161
1185
  class TadoMetadata < BaseResource
1162
1186
  # Device type for a tado° device.
1163
1187
  # @return [String, nil]
@@ -1442,6 +1466,60 @@ module Seam
1442
1466
  attr_accessor :time_zone
1443
1467
  end
1444
1468
 
1469
+ class Speaker < BaseResource
1470
+ class NowPlaying < BaseResource
1471
+ # Album of the content that is currently playing.
1472
+ # @return [String, nil]
1473
+ attr_accessor :album
1474
+ # Artist of the content that is currently playing.
1475
+ # @return [String, nil]
1476
+ attr_accessor :artist
1477
+ # Title of the content that is currently playing.
1478
+ # @return [String, nil]
1479
+ attr_accessor :title
1480
+ end
1481
+
1482
+ # Content that is currently playing on the speaker.
1483
+ # @return [NowPlaying, nil]
1484
+ resource_accessor :now_playing, NowPlaying
1485
+ # IDs of the other speakers that are currently grouped with this speaker. Pausing or resuming playback on a speaker also affects the speakers in its group.
1486
+ # @return [Array<String>]
1487
+ attr_accessor :grouped_with_device_ids
1488
+ # Indicates whether the speaker's volume is fixed, for example, because the speaker's line-out level is controlled by an external amplifier. A speaker with a fixed volume cannot have its volume set through Seam.
1489
+ # @return [Boolean]
1490
+ attr_accessor :has_fixed_volume
1491
+ # Indicates whether the speaker is muted.
1492
+ # @return [Boolean]
1493
+ attr_accessor :is_muted
1494
+ # Maximum volume that you can set on the speaker. This is the ceiling of the speaker's native volume scale, not a limit configured for guests.
1495
+ # @return [Float]
1496
+ attr_accessor :max_volume
1497
+ # Minimum volume that you can set on the speaker.
1498
+ # @return [Float]
1499
+ attr_accessor :min_volume
1500
+ # Playback state of the speaker.
1501
+ # @return [String]
1502
+ # Known values:
1503
+ # - `playing`
1504
+ # - `paused`
1505
+ # - `idle`
1506
+ # - `buffering`
1507
+ # - `unknown`
1508
+ attr_accessor :playback_state
1509
+ # Indicates whether the speaker can play a chime.
1510
+ # @return [Boolean]
1511
+ attr_accessor :supports_chime
1512
+ # Current volume of the speaker, on the speaker's native volume scale from `min_volume` to `max_volume`. This is the native volume setting, not a decibel level.
1513
+ # @return [Float]
1514
+ attr_accessor :volume
1515
+ # Increment between the volume values that you can set on the speaker.
1516
+ # @return [Float]
1517
+ attr_accessor :volume_step
1518
+ # Date and time at which the speaker first reported its current volume.
1519
+ # @return [Time, nil]
1520
+ date_accessor :volume_reported_at
1521
+ end
1522
+
1445
1523
  class ActiveThermostatSchedule < BaseResource
1446
1524
  class Errors < BaseResource
1447
1525
  # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
@@ -1925,6 +2003,9 @@ module Seam
1925
2003
  # Metadata for a SmartThings device.
1926
2004
  # @return [SmartthingsMetadata, nil]
1927
2005
  resource_accessor :smartthings_metadata, SmartthingsMetadata
2006
+ # Metadata for a Sonos speaker.
2007
+ # @return [SonosMetadata, nil]
2008
+ resource_accessor :sonos_metadata, SonosMetadata
1928
2009
  # Metadata for a tado° device.
1929
2010
  # @return [TadoMetadata, nil]
1930
2011
  resource_accessor :tado_metadata, TadoMetadata
@@ -1955,6 +2036,9 @@ module Seam
1955
2036
  # Keypad battery status.
1956
2037
  # @return [KeypadBattery, nil]
1957
2038
  resource_accessor :keypad_battery, KeypadBattery
2039
+ # Audio state and capabilities of the speaker.
2040
+ # @return [Speaker, nil]
2041
+ resource_accessor :speaker, Speaker
1958
2042
  # Active [thermostat schedule](https://www.seam.co/docs/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
1959
2043
  # @return [ActiveThermostatSchedule, nil]
1960
2044
  resource_accessor :active_thermostat_schedule, ActiveThermostatSchedule
@@ -2689,6 +2773,15 @@ module Seam
2689
2773
  # Indicates whether the thermostat supports simultaneous heating and cooling.
2690
2774
  # @return [Boolean, nil]
2691
2775
  attr_accessor :can_hvac_heat_cool
2776
+ # Indicates whether the speaker supports muting and unmuting.
2777
+ # @return [Boolean, nil]
2778
+ attr_accessor :can_mute_speaker
2779
+ # Indicates whether the speaker supports pausing and resuming playback.
2780
+ # @return [Boolean, nil]
2781
+ attr_accessor :can_pause_speaker_playback
2782
+ # Indicates whether the speaker supports playing a chime.
2783
+ # @return [Boolean, nil]
2784
+ attr_accessor :can_play_speaker_chime
2692
2785
  # Indicates whether the device supports programming offline access codes.
2693
2786
  # @return [Boolean, nil]
2694
2787
  attr_accessor :can_program_offline_access_codes
@@ -2713,6 +2806,9 @@ module Seam
2713
2806
  # Indicates whether the thermostat supports running climate programs.
2714
2807
  # @return [Boolean, nil]
2715
2808
  attr_accessor :can_run_thermostat_programs
2809
+ # Indicates whether the speaker supports setting its volume.
2810
+ # @return [Boolean, nil]
2811
+ attr_accessor :can_set_speaker_volume
2716
2812
  # Indicates whether the device supports simulating connection in a sandbox.
2717
2813
  # @return [Boolean, nil]
2718
2814
  attr_accessor :can_simulate_connection
@@ -2808,6 +2904,7 @@ module Seam
2808
2904
  # - `tapo_camera`
2809
2905
  # - `arlo_camera`
2810
2906
  # - `reolink_camera`
2907
+ # - `sonos_speaker`
2811
2908
  attr_accessor :device_type
2812
2909
  # Display name of the device, defaults to nickname (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices.
2813
2910
  # @return [String]