@seamapi/types 1.1126.0 → 1.1128.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.
Files changed (50) hide show
  1. package/lib/seam/connect/models/action-attempts/pause-speaker-playback.js +26 -14
  2. package/lib/seam/connect/models/action-attempts/pause-speaker-playback.js.map +1 -1
  3. package/lib/seam/connect/models/action-attempts/play-speaker-audio-clip.js +26 -14
  4. package/lib/seam/connect/models/action-attempts/play-speaker-audio-clip.js.map +1 -1
  5. package/lib/seam/connect/models/action-attempts/play-speaker-chime.js +26 -14
  6. package/lib/seam/connect/models/action-attempts/play-speaker-chime.js.map +1 -1
  7. package/lib/seam/connect/models/action-attempts/play-speaker-favorite.js +26 -14
  8. package/lib/seam/connect/models/action-attempts/play-speaker-favorite.js.map +1 -1
  9. package/lib/seam/connect/models/action-attempts/resume-speaker-playback.js +26 -14
  10. package/lib/seam/connect/models/action-attempts/resume-speaker-playback.js.map +1 -1
  11. package/lib/seam/connect/models/action-attempts/set-speaker-mute.js +26 -14
  12. package/lib/seam/connect/models/action-attempts/set-speaker-mute.js.map +1 -1
  13. package/lib/seam/connect/models/action-attempts/set-speaker-volume.js +26 -14
  14. package/lib/seam/connect/models/action-attempts/set-speaker-volume.js.map +1 -1
  15. package/lib/seam/connect/models/customer/access-grant-resources.d.ts +14 -14
  16. package/lib/seam/connect/models/customer/customer-data.d.ts +24 -24
  17. package/lib/seam/connect/models/customer/customer-delete-data.d.ts +2 -2
  18. package/lib/seam/connect/models/customer/customer-portal.d.ts +214 -24
  19. package/lib/seam/connect/models/customer/customer-portal.js +23 -0
  20. package/lib/seam/connect/models/customer/customer-portal.js.map +1 -1
  21. package/lib/seam/connect/models/customization-profiles/customization-profile.d.ts +266 -0
  22. package/lib/seam/connect/models/customization-profiles/customization-profile.js +4 -0
  23. package/lib/seam/connect/models/customization-profiles/customization-profile.js.map +1 -1
  24. package/lib/seam/connect/models/devices/capability-properties/speaker.js +1 -0
  25. package/lib/seam/connect/models/devices/capability-properties/speaker.js.map +1 -1
  26. package/lib/seam/connect/models/devices/device-metadata.js +6 -2
  27. package/lib/seam/connect/models/devices/device-metadata.js.map +1 -1
  28. package/lib/seam/connect/models/devices/device.js +48 -24
  29. package/lib/seam/connect/models/devices/device.js.map +1 -1
  30. package/lib/seam/connect/models/events/seam-event.d.ts +12 -12
  31. package/lib/seam/connect/models/events/spaces.d.ts +24 -24
  32. package/lib/seam/connect/openapi.js +649 -38
  33. package/lib/seam/connect/openapi.js.map +1 -1
  34. package/lib/seam/connect/route-types.d.ts +693 -144
  35. package/package.json +1 -1
  36. package/src/lib/seam/connect/internal/schemas.ts +1 -0
  37. package/src/lib/seam/connect/models/action-attempts/pause-speaker-playback.ts +29 -19
  38. package/src/lib/seam/connect/models/action-attempts/play-speaker-audio-clip.ts +29 -19
  39. package/src/lib/seam/connect/models/action-attempts/play-speaker-chime.ts +29 -19
  40. package/src/lib/seam/connect/models/action-attempts/play-speaker-favorite.ts +29 -19
  41. package/src/lib/seam/connect/models/action-attempts/resume-speaker-playback.ts +29 -19
  42. package/src/lib/seam/connect/models/action-attempts/set-speaker-mute.ts +29 -19
  43. package/src/lib/seam/connect/models/action-attempts/set-speaker-volume.ts +29 -19
  44. package/src/lib/seam/connect/models/customer/customer-portal.ts +24 -0
  45. package/src/lib/seam/connect/models/customization-profiles/customization-profile.ts +6 -0
  46. package/src/lib/seam/connect/models/devices/capability-properties/speaker.ts +1 -0
  47. package/src/lib/seam/connect/models/devices/device-metadata.ts +6 -2
  48. package/src/lib/seam/connect/models/devices/device.ts +48 -28
  49. package/src/lib/seam/connect/openapi.ts +732 -38
  50. package/src/lib/seam/connect/route-types.ts +941 -154
@@ -11869,6 +11869,7 @@ const openapi: OpenAPISpec = {
11869
11869
  'Action attempt to track the status of setting the volume on a speaker.',
11870
11870
  enum: ['SET_SPEAKER_VOLUME'],
11871
11871
  type: 'string',
11872
+ 'x-undocumented': 'Unreleased.',
11872
11873
  },
11873
11874
  error: {
11874
11875
  description:
@@ -11890,6 +11891,7 @@ const openapi: OpenAPISpec = {
11890
11891
  'action_type',
11891
11892
  ],
11892
11893
  type: 'object',
11894
+ 'x-undocumented': 'Unreleased.',
11893
11895
  },
11894
11896
  {
11895
11897
  description: 'Setting the speaker volume succeeded.',
@@ -11904,6 +11906,7 @@ const openapi: OpenAPISpec = {
11904
11906
  'Action attempt to track the status of setting the volume on a speaker.',
11905
11907
  enum: ['SET_SPEAKER_VOLUME'],
11906
11908
  type: 'string',
11909
+ 'x-undocumented': 'Unreleased.',
11907
11910
  },
11908
11911
  error: {
11909
11912
  description:
@@ -11925,6 +11928,7 @@ const openapi: OpenAPISpec = {
11925
11928
  'result',
11926
11929
  ],
11927
11930
  type: 'object',
11931
+ 'x-undocumented': 'Unreleased.',
11928
11932
  },
11929
11933
  {
11930
11934
  description: 'Setting the speaker volume failed.',
@@ -11939,6 +11943,7 @@ const openapi: OpenAPISpec = {
11939
11943
  'Action attempt to track the status of setting the volume on a speaker.',
11940
11944
  enum: ['SET_SPEAKER_VOLUME'],
11941
11945
  type: 'string',
11946
+ 'x-undocumented': 'Unreleased.',
11942
11947
  },
11943
11948
  error: {
11944
11949
  description: 'Error associated with the action.',
@@ -11968,6 +11973,7 @@ const openapi: OpenAPISpec = {
11968
11973
  'error',
11969
11974
  ],
11970
11975
  type: 'object',
11976
+ 'x-undocumented': 'Unreleased.',
11971
11977
  },
11972
11978
  {
11973
11979
  description: 'Muting or unmuting the speaker is pending.',
@@ -11982,6 +11988,7 @@ const openapi: OpenAPISpec = {
11982
11988
  'Action attempt to track the status of muting or unmuting a speaker.',
11983
11989
  enum: ['SET_SPEAKER_MUTE'],
11984
11990
  type: 'string',
11991
+ 'x-undocumented': 'Unreleased.',
11985
11992
  },
11986
11993
  error: {
11987
11994
  description:
@@ -12003,6 +12010,7 @@ const openapi: OpenAPISpec = {
12003
12010
  'action_type',
12004
12011
  ],
12005
12012
  type: 'object',
12013
+ 'x-undocumented': 'Unreleased.',
12006
12014
  },
12007
12015
  {
12008
12016
  description: 'Muting or unmuting the speaker succeeded.',
@@ -12017,6 +12025,7 @@ const openapi: OpenAPISpec = {
12017
12025
  'Action attempt to track the status of muting or unmuting a speaker.',
12018
12026
  enum: ['SET_SPEAKER_MUTE'],
12019
12027
  type: 'string',
12028
+ 'x-undocumented': 'Unreleased.',
12020
12029
  },
12021
12030
  error: {
12022
12031
  description:
@@ -12038,6 +12047,7 @@ const openapi: OpenAPISpec = {
12038
12047
  'result',
12039
12048
  ],
12040
12049
  type: 'object',
12050
+ 'x-undocumented': 'Unreleased.',
12041
12051
  },
12042
12052
  {
12043
12053
  description: 'Muting or unmuting the speaker failed.',
@@ -12052,6 +12062,7 @@ const openapi: OpenAPISpec = {
12052
12062
  'Action attempt to track the status of muting or unmuting a speaker.',
12053
12063
  enum: ['SET_SPEAKER_MUTE'],
12054
12064
  type: 'string',
12065
+ 'x-undocumented': 'Unreleased.',
12055
12066
  },
12056
12067
  error: {
12057
12068
  description: 'Error associated with the action.',
@@ -12081,6 +12092,7 @@ const openapi: OpenAPISpec = {
12081
12092
  'error',
12082
12093
  ],
12083
12094
  type: 'object',
12095
+ 'x-undocumented': 'Unreleased.',
12084
12096
  },
12085
12097
  {
12086
12098
  description: 'Pausing playback on the speaker is pending.',
@@ -12095,6 +12107,7 @@ const openapi: OpenAPISpec = {
12095
12107
  'Action attempt to track the status of pausing playback on a speaker.',
12096
12108
  enum: ['PAUSE_SPEAKER_PLAYBACK'],
12097
12109
  type: 'string',
12110
+ 'x-undocumented': 'Unreleased.',
12098
12111
  },
12099
12112
  error: {
12100
12113
  description:
@@ -12116,6 +12129,7 @@ const openapi: OpenAPISpec = {
12116
12129
  'action_type',
12117
12130
  ],
12118
12131
  type: 'object',
12132
+ 'x-undocumented': 'Unreleased.',
12119
12133
  },
12120
12134
  {
12121
12135
  description: 'Pausing playback on the speaker succeeded.',
@@ -12130,6 +12144,7 @@ const openapi: OpenAPISpec = {
12130
12144
  'Action attempt to track the status of pausing playback on a speaker.',
12131
12145
  enum: ['PAUSE_SPEAKER_PLAYBACK'],
12132
12146
  type: 'string',
12147
+ 'x-undocumented': 'Unreleased.',
12133
12148
  },
12134
12149
  error: {
12135
12150
  description:
@@ -12159,6 +12174,7 @@ const openapi: OpenAPISpec = {
12159
12174
  'result',
12160
12175
  ],
12161
12176
  type: 'object',
12177
+ 'x-undocumented': 'Unreleased.',
12162
12178
  },
12163
12179
  {
12164
12180
  description: 'Pausing playback on the speaker failed.',
@@ -12173,6 +12189,7 @@ const openapi: OpenAPISpec = {
12173
12189
  'Action attempt to track the status of pausing playback on a speaker.',
12174
12190
  enum: ['PAUSE_SPEAKER_PLAYBACK'],
12175
12191
  type: 'string',
12192
+ 'x-undocumented': 'Unreleased.',
12176
12193
  },
12177
12194
  error: {
12178
12195
  description: 'Error associated with the action.',
@@ -12202,6 +12219,7 @@ const openapi: OpenAPISpec = {
12202
12219
  'error',
12203
12220
  ],
12204
12221
  type: 'object',
12222
+ 'x-undocumented': 'Unreleased.',
12205
12223
  },
12206
12224
  {
12207
12225
  description: 'Resuming playback on the speaker is pending.',
@@ -12216,6 +12234,7 @@ const openapi: OpenAPISpec = {
12216
12234
  'Action attempt to track the status of resuming playback on a speaker.',
12217
12235
  enum: ['RESUME_SPEAKER_PLAYBACK'],
12218
12236
  type: 'string',
12237
+ 'x-undocumented': 'Unreleased.',
12219
12238
  },
12220
12239
  error: {
12221
12240
  description:
@@ -12237,6 +12256,7 @@ const openapi: OpenAPISpec = {
12237
12256
  'action_type',
12238
12257
  ],
12239
12258
  type: 'object',
12259
+ 'x-undocumented': 'Unreleased.',
12240
12260
  },
12241
12261
  {
12242
12262
  description: 'Resuming playback on the speaker succeeded.',
@@ -12251,6 +12271,7 @@ const openapi: OpenAPISpec = {
12251
12271
  'Action attempt to track the status of resuming playback on a speaker.',
12252
12272
  enum: ['RESUME_SPEAKER_PLAYBACK'],
12253
12273
  type: 'string',
12274
+ 'x-undocumented': 'Unreleased.',
12254
12275
  },
12255
12276
  error: {
12256
12277
  description:
@@ -12280,6 +12301,7 @@ const openapi: OpenAPISpec = {
12280
12301
  'result',
12281
12302
  ],
12282
12303
  type: 'object',
12304
+ 'x-undocumented': 'Unreleased.',
12283
12305
  },
12284
12306
  {
12285
12307
  description: 'Resuming playback on the speaker failed.',
@@ -12294,6 +12316,7 @@ const openapi: OpenAPISpec = {
12294
12316
  'Action attempt to track the status of resuming playback on a speaker.',
12295
12317
  enum: ['RESUME_SPEAKER_PLAYBACK'],
12296
12318
  type: 'string',
12319
+ 'x-undocumented': 'Unreleased.',
12297
12320
  },
12298
12321
  error: {
12299
12322
  description: 'Error associated with the action.',
@@ -12323,6 +12346,7 @@ const openapi: OpenAPISpec = {
12323
12346
  'error',
12324
12347
  ],
12325
12348
  type: 'object',
12349
+ 'x-undocumented': 'Unreleased.',
12326
12350
  },
12327
12351
  {
12328
12352
  description: 'Playing a chime on the speaker is pending.',
@@ -12337,6 +12361,7 @@ const openapi: OpenAPISpec = {
12337
12361
  'Action attempt to track the status of playing a chime on a speaker.',
12338
12362
  enum: ['PLAY_SPEAKER_CHIME'],
12339
12363
  type: 'string',
12364
+ 'x-undocumented': 'Unreleased.',
12340
12365
  },
12341
12366
  error: {
12342
12367
  description:
@@ -12358,6 +12383,7 @@ const openapi: OpenAPISpec = {
12358
12383
  'action_type',
12359
12384
  ],
12360
12385
  type: 'object',
12386
+ 'x-undocumented': 'Unreleased.',
12361
12387
  },
12362
12388
  {
12363
12389
  description: 'Playing a chime on the speaker succeeded.',
@@ -12372,6 +12398,7 @@ const openapi: OpenAPISpec = {
12372
12398
  'Action attempt to track the status of playing a chime on a speaker.',
12373
12399
  enum: ['PLAY_SPEAKER_CHIME'],
12374
12400
  type: 'string',
12401
+ 'x-undocumented': 'Unreleased.',
12375
12402
  },
12376
12403
  error: {
12377
12404
  description:
@@ -12393,6 +12420,7 @@ const openapi: OpenAPISpec = {
12393
12420
  'result',
12394
12421
  ],
12395
12422
  type: 'object',
12423
+ 'x-undocumented': 'Unreleased.',
12396
12424
  },
12397
12425
  {
12398
12426
  description: 'Playing a chime on the speaker failed.',
@@ -12407,6 +12435,7 @@ const openapi: OpenAPISpec = {
12407
12435
  'Action attempt to track the status of playing a chime on a speaker.',
12408
12436
  enum: ['PLAY_SPEAKER_CHIME'],
12409
12437
  type: 'string',
12438
+ 'x-undocumented': 'Unreleased.',
12410
12439
  },
12411
12440
  error: {
12412
12441
  description: 'Error associated with the action.',
@@ -12436,6 +12465,7 @@ const openapi: OpenAPISpec = {
12436
12465
  'error',
12437
12466
  ],
12438
12467
  type: 'object',
12468
+ 'x-undocumented': 'Unreleased.',
12439
12469
  },
12440
12470
  {
12441
12471
  description: 'Playing a favorite on the speaker is pending.',
@@ -12450,6 +12480,7 @@ const openapi: OpenAPISpec = {
12450
12480
  'Action attempt to track the status of playing a favorite on a speaker.',
12451
12481
  enum: ['PLAY_SPEAKER_FAVORITE'],
12452
12482
  type: 'string',
12483
+ 'x-undocumented': 'Unreleased.',
12453
12484
  },
12454
12485
  error: {
12455
12486
  description:
@@ -12471,6 +12502,7 @@ const openapi: OpenAPISpec = {
12471
12502
  'action_type',
12472
12503
  ],
12473
12504
  type: 'object',
12505
+ 'x-undocumented': 'Unreleased.',
12474
12506
  },
12475
12507
  {
12476
12508
  description: 'Playing a favorite on the speaker succeeded.',
@@ -12485,6 +12517,7 @@ const openapi: OpenAPISpec = {
12485
12517
  'Action attempt to track the status of playing a favorite on a speaker.',
12486
12518
  enum: ['PLAY_SPEAKER_FAVORITE'],
12487
12519
  type: 'string',
12520
+ 'x-undocumented': 'Unreleased.',
12488
12521
  },
12489
12522
  error: {
12490
12523
  description:
@@ -12514,6 +12547,7 @@ const openapi: OpenAPISpec = {
12514
12547
  'result',
12515
12548
  ],
12516
12549
  type: 'object',
12550
+ 'x-undocumented': 'Unreleased.',
12517
12551
  },
12518
12552
  {
12519
12553
  description: 'Playing a favorite on the speaker failed.',
@@ -12528,6 +12562,7 @@ const openapi: OpenAPISpec = {
12528
12562
  'Action attempt to track the status of playing a favorite on a speaker.',
12529
12563
  enum: ['PLAY_SPEAKER_FAVORITE'],
12530
12564
  type: 'string',
12565
+ 'x-undocumented': 'Unreleased.',
12531
12566
  },
12532
12567
  error: {
12533
12568
  description: 'Error associated with the action.',
@@ -12557,6 +12592,7 @@ const openapi: OpenAPISpec = {
12557
12592
  'error',
12558
12593
  ],
12559
12594
  type: 'object',
12595
+ 'x-undocumented': 'Unreleased.',
12560
12596
  },
12561
12597
  {
12562
12598
  description: 'Playing an audio clip on the speaker is pending.',
@@ -12571,6 +12607,7 @@ const openapi: OpenAPISpec = {
12571
12607
  'Action attempt to track the status of playing an audio clip on a speaker.',
12572
12608
  enum: ['PLAY_SPEAKER_AUDIO_CLIP'],
12573
12609
  type: 'string',
12610
+ 'x-undocumented': 'Unreleased.',
12574
12611
  },
12575
12612
  error: {
12576
12613
  description:
@@ -12592,6 +12629,7 @@ const openapi: OpenAPISpec = {
12592
12629
  'action_type',
12593
12630
  ],
12594
12631
  type: 'object',
12632
+ 'x-undocumented': 'Unreleased.',
12595
12633
  },
12596
12634
  {
12597
12635
  description: 'Playing an audio clip on the speaker succeeded.',
@@ -12606,6 +12644,7 @@ const openapi: OpenAPISpec = {
12606
12644
  'Action attempt to track the status of playing an audio clip on a speaker.',
12607
12645
  enum: ['PLAY_SPEAKER_AUDIO_CLIP'],
12608
12646
  type: 'string',
12647
+ 'x-undocumented': 'Unreleased.',
12609
12648
  },
12610
12649
  error: {
12611
12650
  description:
@@ -12627,6 +12666,7 @@ const openapi: OpenAPISpec = {
12627
12666
  'result',
12628
12667
  ],
12629
12668
  type: 'object',
12669
+ 'x-undocumented': 'Unreleased.',
12630
12670
  },
12631
12671
  {
12632
12672
  description: 'Playing an audio clip on the speaker failed.',
@@ -12641,6 +12681,7 @@ const openapi: OpenAPISpec = {
12641
12681
  'Action attempt to track the status of playing an audio clip on a speaker.',
12642
12682
  enum: ['PLAY_SPEAKER_AUDIO_CLIP'],
12643
12683
  type: 'string',
12684
+ 'x-undocumented': 'Unreleased.',
12644
12685
  },
12645
12686
  error: {
12646
12687
  description: 'Error associated with the action.',
@@ -12670,6 +12711,7 @@ const openapi: OpenAPISpec = {
12670
12711
  'error',
12671
12712
  ],
12672
12713
  type: 'object',
12714
+ 'x-undocumented': 'Unreleased.',
12673
12715
  },
12674
12716
  {
12675
12717
  properties: {
@@ -14828,6 +14870,183 @@ const openapi: OpenAPISpec = {
14828
14870
  nullable: true,
14829
14871
  type: 'string',
14830
14872
  },
14873
+ customer_portal_features: {
14874
+ description:
14875
+ "Features for customer portals that use this profile. A setting passed when creating the portal takes precedence over the profile's. Changes apply to existing portals the next time they load.",
14876
+ properties: {
14877
+ configure: {
14878
+ description: 'Configuration for the configure feature.',
14879
+ properties: {
14880
+ allow_access_automation_rule_customization: {
14881
+ default: false,
14882
+ description:
14883
+ 'Indicates whether the customer can customize the access automation rules for their properties.',
14884
+ type: 'boolean',
14885
+ },
14886
+ allow_climate_automation_rule_customization: {
14887
+ default: false,
14888
+ description:
14889
+ 'Indicates whether the customer can customize the climate automation rules for their properties.',
14890
+ type: 'boolean',
14891
+ },
14892
+ allow_instant_key_customization: {
14893
+ default: false,
14894
+ description:
14895
+ 'Indicates whether the customer can customize the Instant Key profile for their properties.',
14896
+ type: 'boolean',
14897
+ },
14898
+ allow_notification_customization: {
14899
+ default: false,
14900
+ description:
14901
+ 'Indicates whether the customer can customize their notification settings, such as the low-battery alert threshold.',
14902
+ type: 'boolean',
14903
+ },
14904
+ allow_sound_automation_rule_customization: {
14905
+ default: false,
14906
+ description:
14907
+ 'Indicates whether the customer can customize the sound automation rules for their properties.',
14908
+ type: 'boolean',
14909
+ },
14910
+ exclude: {
14911
+ default: false,
14912
+ description:
14913
+ 'Whether to exclude this feature from the portal.',
14914
+ type: 'boolean',
14915
+ },
14916
+ },
14917
+ type: 'object',
14918
+ },
14919
+ connect: {
14920
+ description: 'Configuration for the connect accounts feature.',
14921
+ properties: {
14922
+ accepted_providers: {
14923
+ description:
14924
+ 'List of provider keys to allow for the connect feature. These providers will be shown when the customer tries to connect an account.',
14925
+ items: { type: 'string' },
14926
+ type: 'array',
14927
+ },
14928
+ exclude: {
14929
+ default: false,
14930
+ description:
14931
+ 'Whether to exclude this feature from the portal.',
14932
+ type: 'boolean',
14933
+ },
14934
+ excluded_providers: {
14935
+ description:
14936
+ 'List of provider keys to exclude from the connect feature. These providers will not be shown when the customer tries to connect an account.',
14937
+ items: { type: 'string' },
14938
+ type: 'array',
14939
+ },
14940
+ },
14941
+ type: 'object',
14942
+ },
14943
+ manage: {
14944
+ description: 'Configuration for the manage feature.',
14945
+ properties: {
14946
+ device_management_confirmation: {
14947
+ description:
14948
+ '\n Custom copy for the confirmation modal shown before unmanaged devices are added to a space and begin being managed (and billed). Only takes effect when the MANAGE_DEVICES_CONFIRMATION_MODAL feature flag is enabled for the workspace. Any omitted string falls back to a localized default.\n ',
14949
+ properties: {
14950
+ body: {
14951
+ description:
14952
+ 'Custom body text for the confirmation modal. May include the {count} token, which is replaced with the number of devices that will begin being managed.',
14953
+ type: 'string',
14954
+ },
14955
+ cancel_button_label: {
14956
+ description: 'Custom label for the cancel button.',
14957
+ type: 'string',
14958
+ },
14959
+ confirm_button_label: {
14960
+ description: 'Custom label for the confirm button.',
14961
+ type: 'string',
14962
+ },
14963
+ title: {
14964
+ description: 'Custom title for the confirmation modal.',
14965
+ type: 'string',
14966
+ },
14967
+ },
14968
+ type: 'object',
14969
+ },
14970
+ events: {
14971
+ description:
14972
+ 'Configuration for event type filtering in the manage feature.',
14973
+ properties: {
14974
+ allowed_events: {
14975
+ description:
14976
+ 'List of event types to show in the events filter. When set, only these event types will be available. Leave empty to show all events.',
14977
+ items: { type: 'string' },
14978
+ type: 'array',
14979
+ },
14980
+ default_events: {
14981
+ description:
14982
+ 'List of event types that are pre-selected in the events filter when the user first loads the events tab.',
14983
+ items: { type: 'string' },
14984
+ type: 'array',
14985
+ },
14986
+ },
14987
+ type: 'object',
14988
+ },
14989
+ exclude: {
14990
+ default: false,
14991
+ description:
14992
+ 'Whether to exclude this feature from the portal.',
14993
+ type: 'boolean',
14994
+ },
14995
+ exclude_device_management: {
14996
+ default: false,
14997
+ description:
14998
+ 'Indicates whether to prevent the customer from converting their devices between managed and unmanaged. Managed devices are billed.',
14999
+ type: 'boolean',
15000
+ },
15001
+ exclude_reservation_management: {
15002
+ default: false,
15003
+ description:
15004
+ 'Indicates whether the customer can manage reservations for their properties.',
15005
+ type: 'boolean',
15006
+ },
15007
+ exclude_reservation_technical_details: {
15008
+ default: false,
15009
+ description:
15010
+ 'Indicates whether to exclude technical details from reservation views.',
15011
+ type: 'boolean',
15012
+ },
15013
+ exclude_staff_management: {
15014
+ default: false,
15015
+ description:
15016
+ 'Indicates whether the customer can manage staff for their properties.',
15017
+ type: 'boolean',
15018
+ },
15019
+ },
15020
+ type: 'object',
15021
+ },
15022
+ manage_devices: {
15023
+ description:
15024
+ 'Configuration for the manage devices feature.\n---\ndeprecated: Use `manage` instead.\n---',
15025
+ properties: {
15026
+ exclude: {
15027
+ default: false,
15028
+ description:
15029
+ 'Whether to exclude this feature from the portal.',
15030
+ type: 'boolean',
15031
+ },
15032
+ },
15033
+ type: 'object',
15034
+ },
15035
+ organize: {
15036
+ description: 'Configuration for the organize feature.',
15037
+ properties: {
15038
+ exclude: {
15039
+ default: false,
15040
+ description:
15041
+ 'Whether to exclude this feature from the portal.',
15042
+ type: 'boolean',
15043
+ },
15044
+ },
15045
+ type: 'object',
15046
+ },
15047
+ },
15048
+ type: 'object',
15049
+ },
14831
15050
  customer_portal_theme: {
14832
15051
  properties: {
14833
15052
  font_family: { type: 'string' },
@@ -15213,26 +15432,31 @@ const openapi: OpenAPISpec = {
15213
15432
  can_mute_speaker: {
15214
15433
  description: 'Indicates whether the speaker supports muting.',
15215
15434
  type: 'boolean',
15435
+ 'x-undocumented': 'Unreleased.',
15216
15436
  },
15217
15437
  can_pause_speaker_playback: {
15218
15438
  description:
15219
15439
  'Indicates whether the speaker supports pausing playback.',
15220
15440
  type: 'boolean',
15441
+ 'x-undocumented': 'Unreleased.',
15221
15442
  },
15222
15443
  can_play_speaker_audio_clip: {
15223
15444
  description:
15224
15445
  'Indicates whether the speaker supports playing an audio clip from a URL.',
15225
15446
  type: 'boolean',
15447
+ 'x-undocumented': 'Unreleased.',
15226
15448
  },
15227
15449
  can_play_speaker_chime: {
15228
15450
  description:
15229
15451
  'Indicates whether the speaker supports playing a chime.',
15230
15452
  type: 'boolean',
15453
+ 'x-undocumented': 'Unreleased.',
15231
15454
  },
15232
15455
  can_play_speaker_favorite: {
15233
15456
  description:
15234
15457
  "Indicates whether the speaker supports listing and playing the favorites saved in the speaker manufacturer's app, such as playlists and radio stations.",
15235
15458
  type: 'boolean',
15459
+ 'x-undocumented': 'Unreleased.',
15236
15460
  },
15237
15461
  can_program_offline_access_codes: {
15238
15462
  description:
@@ -15273,6 +15497,7 @@ const openapi: OpenAPISpec = {
15273
15497
  description:
15274
15498
  'Indicates whether the speaker supports resuming playback.',
15275
15499
  type: 'boolean',
15500
+ 'x-undocumented': 'Unreleased.',
15276
15501
  },
15277
15502
  can_run_thermostat_programs: {
15278
15503
  description:
@@ -15283,6 +15508,7 @@ const openapi: OpenAPISpec = {
15283
15508
  description:
15284
15509
  'Indicates whether the speaker supports setting its volume.',
15285
15510
  type: 'boolean',
15511
+ 'x-undocumented': 'Unreleased.',
15286
15512
  },
15287
15513
  can_simulate_connection: {
15288
15514
  description:
@@ -15331,6 +15557,7 @@ const openapi: OpenAPISpec = {
15331
15557
  can_unmute_speaker: {
15332
15558
  description: 'Indicates whether the speaker supports unmuting.',
15333
15559
  type: 'boolean',
15560
+ 'x-undocumented': 'Unreleased.',
15334
15561
  },
15335
15562
  capabilities_supported: {
15336
15563
  description:
@@ -17595,6 +17822,7 @@ const openapi: OpenAPISpec = {
17595
17822
  },
17596
17823
  },
17597
17824
  type: 'object',
17825
+ 'x-undocumented': 'Unreleased.',
17598
17826
  },
17599
17827
  tado_metadata: {
17600
17828
  description: 'Metadata for a tado° device.',
@@ -18266,6 +18494,7 @@ const openapi: OpenAPISpec = {
18266
18494
  ],
18267
18495
  type: 'object',
18268
18496
  'x-property-group-key': 'speakers',
18497
+ 'x-undocumented': 'Unreleased.',
18269
18498
  },
18270
18499
  supported_code_lengths: {
18271
18500
  description: 'Supported code lengths for access codes.',
@@ -20013,26 +20242,31 @@ const openapi: OpenAPISpec = {
20013
20242
  can_mute_speaker: {
20014
20243
  description: 'Indicates whether the speaker supports muting.',
20015
20244
  type: 'boolean',
20245
+ 'x-undocumented': 'Unreleased.',
20016
20246
  },
20017
20247
  can_pause_speaker_playback: {
20018
20248
  description:
20019
20249
  'Indicates whether the speaker supports pausing playback.',
20020
20250
  type: 'boolean',
20251
+ 'x-undocumented': 'Unreleased.',
20021
20252
  },
20022
20253
  can_play_speaker_audio_clip: {
20023
20254
  description:
20024
20255
  'Indicates whether the speaker supports playing an audio clip from a URL.',
20025
20256
  type: 'boolean',
20257
+ 'x-undocumented': 'Unreleased.',
20026
20258
  },
20027
20259
  can_play_speaker_chime: {
20028
20260
  description:
20029
20261
  'Indicates whether the speaker supports playing a chime.',
20030
20262
  type: 'boolean',
20263
+ 'x-undocumented': 'Unreleased.',
20031
20264
  },
20032
20265
  can_play_speaker_favorite: {
20033
20266
  description:
20034
20267
  "Indicates whether the speaker supports listing and playing the favorites saved in the speaker manufacturer's app, such as playlists and radio stations.",
20035
20268
  type: 'boolean',
20269
+ 'x-undocumented': 'Unreleased.',
20036
20270
  },
20037
20271
  can_program_offline_access_codes: {
20038
20272
  description:
@@ -20073,6 +20307,7 @@ const openapi: OpenAPISpec = {
20073
20307
  description:
20074
20308
  'Indicates whether the speaker supports resuming playback.',
20075
20309
  type: 'boolean',
20310
+ 'x-undocumented': 'Unreleased.',
20076
20311
  },
20077
20312
  can_run_thermostat_programs: {
20078
20313
  description:
@@ -20083,6 +20318,7 @@ const openapi: OpenAPISpec = {
20083
20318
  description:
20084
20319
  'Indicates whether the speaker supports setting its volume.',
20085
20320
  type: 'boolean',
20321
+ 'x-undocumented': 'Unreleased.',
20086
20322
  },
20087
20323
  can_simulate_connection: {
20088
20324
  description:
@@ -20131,6 +20367,7 @@ const openapi: OpenAPISpec = {
20131
20367
  can_unmute_speaker: {
20132
20368
  description: 'Indicates whether the speaker supports unmuting.',
20133
20369
  type: 'boolean',
20370
+ 'x-undocumented': 'Unreleased.',
20134
20371
  },
20135
20372
  device_provider_name: {
20136
20373
  description: 'Name of the device provider.',
@@ -39974,26 +40211,31 @@ const openapi: OpenAPISpec = {
39974
40211
  can_mute_speaker: {
39975
40212
  description: 'Indicates whether the speaker supports muting.',
39976
40213
  type: 'boolean',
40214
+ 'x-undocumented': 'Unreleased.',
39977
40215
  },
39978
40216
  can_pause_speaker_playback: {
39979
40217
  description:
39980
40218
  'Indicates whether the speaker supports pausing playback.',
39981
40219
  type: 'boolean',
40220
+ 'x-undocumented': 'Unreleased.',
39982
40221
  },
39983
40222
  can_play_speaker_audio_clip: {
39984
40223
  description:
39985
40224
  'Indicates whether the speaker supports playing an audio clip from a URL.',
39986
40225
  type: 'boolean',
40226
+ 'x-undocumented': 'Unreleased.',
39987
40227
  },
39988
40228
  can_play_speaker_chime: {
39989
40229
  description:
39990
40230
  'Indicates whether the speaker supports playing a chime.',
39991
40231
  type: 'boolean',
40232
+ 'x-undocumented': 'Unreleased.',
39992
40233
  },
39993
40234
  can_play_speaker_favorite: {
39994
40235
  description:
39995
40236
  "Indicates whether the speaker supports listing and playing the favorites saved in the speaker manufacturer's app, such as playlists and radio stations.",
39996
40237
  type: 'boolean',
40238
+ 'x-undocumented': 'Unreleased.',
39997
40239
  },
39998
40240
  can_program_offline_access_codes: {
39999
40241
  description:
@@ -40034,6 +40276,7 @@ const openapi: OpenAPISpec = {
40034
40276
  description:
40035
40277
  'Indicates whether the speaker supports resuming playback.',
40036
40278
  type: 'boolean',
40279
+ 'x-undocumented': 'Unreleased.',
40037
40280
  },
40038
40281
  can_run_thermostat_programs: {
40039
40282
  description:
@@ -40044,6 +40287,7 @@ const openapi: OpenAPISpec = {
40044
40287
  description:
40045
40288
  'Indicates whether the speaker supports setting its volume.',
40046
40289
  type: 'boolean',
40290
+ 'x-undocumented': 'Unreleased.',
40047
40291
  },
40048
40292
  can_simulate_connection: {
40049
40293
  description:
@@ -40092,6 +40336,7 @@ const openapi: OpenAPISpec = {
40092
40336
  can_unmute_speaker: {
40093
40337
  description: 'Indicates whether the speaker supports unmuting.',
40094
40338
  type: 'boolean',
40339
+ 'x-undocumented': 'Unreleased.',
40095
40340
  },
40096
40341
  capabilities_supported: {
40097
40342
  description:
@@ -51861,32 +52106,6 @@ const openapi: OpenAPISpec = {
51861
52106
  schema: {
51862
52107
  allOf: [
51863
52108
  {
51864
- default: {
51865
- exclude_locale_picker: false,
51866
- features: {
51867
- configure: {
51868
- allow_access_automation_rule_customization: false,
51869
- allow_climate_automation_rule_customization: false,
51870
- allow_instant_key_customization: false,
51871
- allow_notification_customization: false,
51872
- allow_sound_automation_rule_customization: false,
51873
- exclude: false,
51874
- },
51875
- connect: { exclude: false },
51876
- manage: {
51877
- exclude: false,
51878
- exclude_device_management: false,
51879
- exclude_reservation_management: false,
51880
- exclude_reservation_technical_details: false,
51881
- exclude_staff_management: false,
51882
- },
51883
- manage_devices: { exclude: false },
51884
- organize: { exclude: false },
51885
- },
51886
- is_embedded: false,
51887
- read_only: false,
51888
- },
51889
- description: 'Configuration for a customer portal',
51890
52109
  properties: {
51891
52110
  _dev: {
51892
52111
  default: false,
@@ -51988,10 +52207,10 @@ const openapi: OpenAPISpec = {
51988
52207
  type: 'boolean',
51989
52208
  },
51990
52209
  features: {
51991
- default: {},
52210
+ description:
52211
+ "Features to include in the portal. Settings you omit use the portal's customization profile, then the Seam default. Settings you pass take precedence over the customization profile's, so changing the profile doesn't change them.",
51992
52212
  properties: {
51993
52213
  configure: {
51994
- default: {},
51995
52214
  description:
51996
52215
  'Configuration for the configure feature.',
51997
52216
  properties: {
@@ -52035,7 +52254,6 @@ const openapi: OpenAPISpec = {
52035
52254
  type: 'object',
52036
52255
  },
52037
52256
  connect: {
52038
- default: {},
52039
52257
  description:
52040
52258
  'Configuration for the connect accounts feature.',
52041
52259
  properties: {
@@ -52061,7 +52279,6 @@ const openapi: OpenAPISpec = {
52061
52279
  type: 'object',
52062
52280
  },
52063
52281
  manage: {
52064
- default: {},
52065
52282
  description:
52066
52283
  'Configuration for the manage feature.',
52067
52284
  properties: {
@@ -52145,7 +52362,6 @@ const openapi: OpenAPISpec = {
52145
52362
  type: 'object',
52146
52363
  },
52147
52364
  manage_devices: {
52148
- default: {},
52149
52365
  description:
52150
52366
  'Configuration for the manage devices feature.\n---\ndeprecated: Use `manage` instead.\n---',
52151
52367
  properties: {
@@ -52159,7 +52375,6 @@ const openapi: OpenAPISpec = {
52159
52375
  type: 'object',
52160
52376
  },
52161
52377
  organize: {
52162
- default: {},
52163
52378
  description:
52164
52379
  'Configuration for the organize feature.',
52165
52380
  properties: {
@@ -63726,7 +63941,37 @@ const openapi: OpenAPISpec = {
63726
63941
  },
63727
63942
  speakers: {
63728
63943
  properties: {
63944
+ play_audio_clip: {
63945
+ properties: {
63946
+ audio_url: {
63947
+ description:
63948
+ 'Public HTTPS URL of the MP3 or WAV file to play. The speaker downloads the file itself.',
63949
+ format: 'uri',
63950
+ maxLength: 2048,
63951
+ pattern: '^https:\\/\\/',
63952
+ type: 'string',
63953
+ },
63954
+ volume: {
63955
+ maximum: 100,
63956
+ minimum: 0,
63957
+ type: 'integer',
63958
+ },
63959
+ },
63960
+ required: ['audio_url'],
63961
+ type: 'object',
63962
+ },
63729
63963
  play_chime: { type: 'boolean' },
63964
+ play_favorite: {
63965
+ properties: {
63966
+ favorite_id: {
63967
+ minLength: 1,
63968
+ type: 'string',
63969
+ },
63970
+ shuffle: { type: 'boolean' },
63971
+ },
63972
+ required: ['favorite_id'],
63973
+ type: 'object',
63974
+ },
63730
63975
  set_volume_to: {
63731
63976
  maximum: 100,
63732
63977
  minimum: 0,
@@ -64232,7 +64477,37 @@ const openapi: OpenAPISpec = {
64232
64477
  },
64233
64478
  speakers: {
64234
64479
  properties: {
64480
+ play_audio_clip: {
64481
+ properties: {
64482
+ audio_url: {
64483
+ description:
64484
+ 'Public HTTPS URL of the MP3 or WAV file to play. The speaker downloads the file itself.',
64485
+ format: 'uri',
64486
+ maxLength: 2048,
64487
+ pattern: '^https:\\/\\/',
64488
+ type: 'string',
64489
+ },
64490
+ volume: {
64491
+ maximum: 100,
64492
+ minimum: 0,
64493
+ type: 'integer',
64494
+ },
64495
+ },
64496
+ required: ['audio_url'],
64497
+ type: 'object',
64498
+ },
64235
64499
  play_chime: { type: 'boolean' },
64500
+ play_favorite: {
64501
+ properties: {
64502
+ favorite_id: {
64503
+ minLength: 1,
64504
+ type: 'string',
64505
+ },
64506
+ shuffle: { type: 'boolean' },
64507
+ },
64508
+ required: ['favorite_id'],
64509
+ type: 'object',
64510
+ },
64236
64511
  set_volume_to: {
64237
64512
  maximum: 100,
64238
64513
  minimum: 0,
@@ -65671,7 +65946,37 @@ const openapi: OpenAPISpec = {
65671
65946
  },
65672
65947
  speakers: {
65673
65948
  properties: {
65949
+ play_audio_clip: {
65950
+ properties: {
65951
+ audio_url: {
65952
+ description:
65953
+ 'Public HTTPS URL of the MP3 or WAV file to play. The speaker downloads the file itself.',
65954
+ format: 'uri',
65955
+ maxLength: 2048,
65956
+ pattern: '^https:\\/\\/',
65957
+ type: 'string',
65958
+ },
65959
+ volume: {
65960
+ maximum: 100,
65961
+ minimum: 0,
65962
+ type: 'integer',
65963
+ },
65964
+ },
65965
+ required: ['audio_url'],
65966
+ type: 'object',
65967
+ },
65674
65968
  play_chime: { type: 'boolean' },
65969
+ play_favorite: {
65970
+ properties: {
65971
+ favorite_id: {
65972
+ minLength: 1,
65973
+ type: 'string',
65974
+ },
65975
+ shuffle: { type: 'boolean' },
65976
+ },
65977
+ required: ['favorite_id'],
65978
+ type: 'object',
65979
+ },
65675
65980
  set_volume_to: {
65676
65981
  maximum: 100,
65677
65982
  minimum: 0,
@@ -66097,7 +66402,37 @@ const openapi: OpenAPISpec = {
66097
66402
  },
66098
66403
  speakers: {
66099
66404
  properties: {
66405
+ play_audio_clip: {
66406
+ properties: {
66407
+ audio_url: {
66408
+ description:
66409
+ 'Public HTTPS URL of the MP3 or WAV file to play. The speaker downloads the file itself.',
66410
+ format: 'uri',
66411
+ maxLength: 2048,
66412
+ pattern: '^https:\\/\\/',
66413
+ type: 'string',
66414
+ },
66415
+ volume: {
66416
+ maximum: 100,
66417
+ minimum: 0,
66418
+ type: 'integer',
66419
+ },
66420
+ },
66421
+ required: ['audio_url'],
66422
+ type: 'object',
66423
+ },
66100
66424
  play_chime: { type: 'boolean' },
66425
+ play_favorite: {
66426
+ properties: {
66427
+ favorite_id: {
66428
+ minLength: 1,
66429
+ type: 'string',
66430
+ },
66431
+ shuffle: { type: 'boolean' },
66432
+ },
66433
+ required: ['favorite_id'],
66434
+ type: 'object',
66435
+ },
66101
66436
  set_volume_to: {
66102
66437
  maximum: 100,
66103
66438
  minimum: 0,
@@ -67599,10 +67934,10 @@ const openapi: OpenAPISpec = {
67599
67934
  type: 'boolean',
67600
67935
  },
67601
67936
  features: {
67602
- default: {},
67937
+ description:
67938
+ 'Customer portal features. Settings you omit use the Seam default.',
67603
67939
  properties: {
67604
67940
  configure: {
67605
- default: {},
67606
67941
  description:
67607
67942
  'Configuration for the configure feature.',
67608
67943
  properties: {
@@ -67646,7 +67981,6 @@ const openapi: OpenAPISpec = {
67646
67981
  type: 'object',
67647
67982
  },
67648
67983
  connect: {
67649
- default: {},
67650
67984
  description:
67651
67985
  'Configuration for the connect accounts feature.',
67652
67986
  properties: {
@@ -67672,7 +68006,6 @@ const openapi: OpenAPISpec = {
67672
68006
  type: 'object',
67673
68007
  },
67674
68008
  manage: {
67675
- default: {},
67676
68009
  description:
67677
68010
  'Configuration for the manage feature.',
67678
68011
  properties: {
@@ -67756,7 +68089,6 @@ const openapi: OpenAPISpec = {
67756
68089
  type: 'object',
67757
68090
  },
67758
68091
  manage_devices: {
67759
- default: {},
67760
68092
  description:
67761
68093
  'Configuration for the manage devices feature.\n---\ndeprecated: Use `manage` instead.\n---',
67762
68094
  properties: {
@@ -67770,7 +68102,6 @@ const openapi: OpenAPISpec = {
67770
68102
  type: 'object',
67771
68103
  },
67772
68104
  organize: {
67773
- default: {},
67774
68105
  description:
67775
68106
  'Configuration for the organize feature.',
67776
68107
  properties: {
@@ -76869,6 +77200,187 @@ const openapi: OpenAPISpec = {
76869
77200
  format: 'uuid',
76870
77201
  type: 'string',
76871
77202
  },
77203
+ customer_portal_features: {
77204
+ description:
77205
+ 'Features for customer portals that use this profile. Settings passed when creating a portal take precedence.',
77206
+ properties: {
77207
+ configure: {
77208
+ description: 'Configuration for the configure feature.',
77209
+ properties: {
77210
+ allow_access_automation_rule_customization: {
77211
+ default: false,
77212
+ description:
77213
+ 'Indicates whether the customer can customize the access automation rules for their properties.',
77214
+ type: 'boolean',
77215
+ },
77216
+ allow_climate_automation_rule_customization: {
77217
+ default: false,
77218
+ description:
77219
+ 'Indicates whether the customer can customize the climate automation rules for their properties.',
77220
+ type: 'boolean',
77221
+ },
77222
+ allow_instant_key_customization: {
77223
+ default: false,
77224
+ description:
77225
+ 'Indicates whether the customer can customize the Instant Key profile for their properties.',
77226
+ type: 'boolean',
77227
+ },
77228
+ allow_notification_customization: {
77229
+ default: false,
77230
+ description:
77231
+ 'Indicates whether the customer can customize their notification settings, such as the low-battery alert threshold.',
77232
+ type: 'boolean',
77233
+ },
77234
+ allow_sound_automation_rule_customization: {
77235
+ default: false,
77236
+ description:
77237
+ 'Indicates whether the customer can customize the sound automation rules for their properties.',
77238
+ type: 'boolean',
77239
+ },
77240
+ exclude: {
77241
+ default: false,
77242
+ description:
77243
+ 'Whether to exclude this feature from the portal.',
77244
+ type: 'boolean',
77245
+ },
77246
+ },
77247
+ type: 'object',
77248
+ },
77249
+ connect: {
77250
+ description:
77251
+ 'Configuration for the connect accounts feature.',
77252
+ properties: {
77253
+ accepted_providers: {
77254
+ description:
77255
+ 'List of provider keys to allow for the connect feature. These providers will be shown when the customer tries to connect an account.',
77256
+ items: { type: 'string' },
77257
+ type: 'array',
77258
+ },
77259
+ exclude: {
77260
+ default: false,
77261
+ description:
77262
+ 'Whether to exclude this feature from the portal.',
77263
+ type: 'boolean',
77264
+ },
77265
+ excluded_providers: {
77266
+ description:
77267
+ 'List of provider keys to exclude from the connect feature. These providers will not be shown when the customer tries to connect an account.',
77268
+ items: { type: 'string' },
77269
+ type: 'array',
77270
+ },
77271
+ },
77272
+ type: 'object',
77273
+ },
77274
+ manage: {
77275
+ description: 'Configuration for the manage feature.',
77276
+ properties: {
77277
+ device_management_confirmation: {
77278
+ description:
77279
+ '\n Custom copy for the confirmation modal shown before unmanaged devices are added to a space and begin being managed (and billed). Only takes effect when the MANAGE_DEVICES_CONFIRMATION_MODAL feature flag is enabled for the workspace. Any omitted string falls back to a localized default.\n ',
77280
+ properties: {
77281
+ body: {
77282
+ description:
77283
+ 'Custom body text for the confirmation modal. May include the {count} token, which is replaced with the number of devices that will begin being managed.',
77284
+ type: 'string',
77285
+ },
77286
+ cancel_button_label: {
77287
+ description:
77288
+ 'Custom label for the cancel button.',
77289
+ type: 'string',
77290
+ },
77291
+ confirm_button_label: {
77292
+ description:
77293
+ 'Custom label for the confirm button.',
77294
+ type: 'string',
77295
+ },
77296
+ title: {
77297
+ description:
77298
+ 'Custom title for the confirmation modal.',
77299
+ type: 'string',
77300
+ },
77301
+ },
77302
+ type: 'object',
77303
+ },
77304
+ events: {
77305
+ description:
77306
+ 'Configuration for event type filtering in the manage feature.',
77307
+ properties: {
77308
+ allowed_events: {
77309
+ description:
77310
+ 'List of event types to show in the events filter. When set, only these event types will be available. Leave empty to show all events.',
77311
+ items: { type: 'string' },
77312
+ type: 'array',
77313
+ },
77314
+ default_events: {
77315
+ description:
77316
+ 'List of event types that are pre-selected in the events filter when the user first loads the events tab.',
77317
+ items: { type: 'string' },
77318
+ type: 'array',
77319
+ },
77320
+ },
77321
+ type: 'object',
77322
+ },
77323
+ exclude: {
77324
+ default: false,
77325
+ description:
77326
+ 'Whether to exclude this feature from the portal.',
77327
+ type: 'boolean',
77328
+ },
77329
+ exclude_device_management: {
77330
+ default: false,
77331
+ description:
77332
+ 'Indicates whether to prevent the customer from converting their devices between managed and unmanaged. Managed devices are billed.',
77333
+ type: 'boolean',
77334
+ },
77335
+ exclude_reservation_management: {
77336
+ default: false,
77337
+ description:
77338
+ 'Indicates whether the customer can manage reservations for their properties.',
77339
+ type: 'boolean',
77340
+ },
77341
+ exclude_reservation_technical_details: {
77342
+ default: false,
77343
+ description:
77344
+ 'Indicates whether to exclude technical details from reservation views.',
77345
+ type: 'boolean',
77346
+ },
77347
+ exclude_staff_management: {
77348
+ default: false,
77349
+ description:
77350
+ 'Indicates whether the customer can manage staff for their properties.',
77351
+ type: 'boolean',
77352
+ },
77353
+ },
77354
+ type: 'object',
77355
+ },
77356
+ manage_devices: {
77357
+ description:
77358
+ 'Configuration for the manage devices feature.\n---\ndeprecated: Use `manage` instead.\n---',
77359
+ properties: {
77360
+ exclude: {
77361
+ default: false,
77362
+ description:
77363
+ 'Whether to exclude this feature from the portal.',
77364
+ type: 'boolean',
77365
+ },
77366
+ },
77367
+ type: 'object',
77368
+ },
77369
+ organize: {
77370
+ description: 'Configuration for the organize feature.',
77371
+ properties: {
77372
+ exclude: {
77373
+ default: false,
77374
+ description:
77375
+ 'Whether to exclude this feature from the portal.',
77376
+ type: 'boolean',
77377
+ },
77378
+ },
77379
+ type: 'object',
77380
+ },
77381
+ },
77382
+ type: 'object',
77383
+ },
76872
77384
  customer_portal_theme: {
76873
77385
  properties: {
76874
77386
  font_family: { type: 'string' },
@@ -77362,6 +77874,188 @@ const openapi: OpenAPISpec = {
77362
77874
  'application/json': {
77363
77875
  schema: {
77364
77876
  properties: {
77877
+ customer_portal_features: {
77878
+ description:
77879
+ "Features for customer portals that use this profile. Replaces the profile's current features; pass `null` to remove them. Portals pick up the change the next time they load.",
77880
+ nullable: true,
77881
+ properties: {
77882
+ configure: {
77883
+ description: 'Configuration for the configure feature.',
77884
+ properties: {
77885
+ allow_access_automation_rule_customization: {
77886
+ default: false,
77887
+ description:
77888
+ 'Indicates whether the customer can customize the access automation rules for their properties.',
77889
+ type: 'boolean',
77890
+ },
77891
+ allow_climate_automation_rule_customization: {
77892
+ default: false,
77893
+ description:
77894
+ 'Indicates whether the customer can customize the climate automation rules for their properties.',
77895
+ type: 'boolean',
77896
+ },
77897
+ allow_instant_key_customization: {
77898
+ default: false,
77899
+ description:
77900
+ 'Indicates whether the customer can customize the Instant Key profile for their properties.',
77901
+ type: 'boolean',
77902
+ },
77903
+ allow_notification_customization: {
77904
+ default: false,
77905
+ description:
77906
+ 'Indicates whether the customer can customize their notification settings, such as the low-battery alert threshold.',
77907
+ type: 'boolean',
77908
+ },
77909
+ allow_sound_automation_rule_customization: {
77910
+ default: false,
77911
+ description:
77912
+ 'Indicates whether the customer can customize the sound automation rules for their properties.',
77913
+ type: 'boolean',
77914
+ },
77915
+ exclude: {
77916
+ default: false,
77917
+ description:
77918
+ 'Whether to exclude this feature from the portal.',
77919
+ type: 'boolean',
77920
+ },
77921
+ },
77922
+ type: 'object',
77923
+ },
77924
+ connect: {
77925
+ description:
77926
+ 'Configuration for the connect accounts feature.',
77927
+ properties: {
77928
+ accepted_providers: {
77929
+ description:
77930
+ 'List of provider keys to allow for the connect feature. These providers will be shown when the customer tries to connect an account.',
77931
+ items: { type: 'string' },
77932
+ type: 'array',
77933
+ },
77934
+ exclude: {
77935
+ default: false,
77936
+ description:
77937
+ 'Whether to exclude this feature from the portal.',
77938
+ type: 'boolean',
77939
+ },
77940
+ excluded_providers: {
77941
+ description:
77942
+ 'List of provider keys to exclude from the connect feature. These providers will not be shown when the customer tries to connect an account.',
77943
+ items: { type: 'string' },
77944
+ type: 'array',
77945
+ },
77946
+ },
77947
+ type: 'object',
77948
+ },
77949
+ manage: {
77950
+ description: 'Configuration for the manage feature.',
77951
+ properties: {
77952
+ device_management_confirmation: {
77953
+ description:
77954
+ '\n Custom copy for the confirmation modal shown before unmanaged devices are added to a space and begin being managed (and billed). Only takes effect when the MANAGE_DEVICES_CONFIRMATION_MODAL feature flag is enabled for the workspace. Any omitted string falls back to a localized default.\n ',
77955
+ properties: {
77956
+ body: {
77957
+ description:
77958
+ 'Custom body text for the confirmation modal. May include the {count} token, which is replaced with the number of devices that will begin being managed.',
77959
+ type: 'string',
77960
+ },
77961
+ cancel_button_label: {
77962
+ description:
77963
+ 'Custom label for the cancel button.',
77964
+ type: 'string',
77965
+ },
77966
+ confirm_button_label: {
77967
+ description:
77968
+ 'Custom label for the confirm button.',
77969
+ type: 'string',
77970
+ },
77971
+ title: {
77972
+ description:
77973
+ 'Custom title for the confirmation modal.',
77974
+ type: 'string',
77975
+ },
77976
+ },
77977
+ type: 'object',
77978
+ },
77979
+ events: {
77980
+ description:
77981
+ 'Configuration for event type filtering in the manage feature.',
77982
+ properties: {
77983
+ allowed_events: {
77984
+ description:
77985
+ 'List of event types to show in the events filter. When set, only these event types will be available. Leave empty to show all events.',
77986
+ items: { type: 'string' },
77987
+ type: 'array',
77988
+ },
77989
+ default_events: {
77990
+ description:
77991
+ 'List of event types that are pre-selected in the events filter when the user first loads the events tab.',
77992
+ items: { type: 'string' },
77993
+ type: 'array',
77994
+ },
77995
+ },
77996
+ type: 'object',
77997
+ },
77998
+ exclude: {
77999
+ default: false,
78000
+ description:
78001
+ 'Whether to exclude this feature from the portal.',
78002
+ type: 'boolean',
78003
+ },
78004
+ exclude_device_management: {
78005
+ default: false,
78006
+ description:
78007
+ 'Indicates whether to prevent the customer from converting their devices between managed and unmanaged. Managed devices are billed.',
78008
+ type: 'boolean',
78009
+ },
78010
+ exclude_reservation_management: {
78011
+ default: false,
78012
+ description:
78013
+ 'Indicates whether the customer can manage reservations for their properties.',
78014
+ type: 'boolean',
78015
+ },
78016
+ exclude_reservation_technical_details: {
78017
+ default: false,
78018
+ description:
78019
+ 'Indicates whether to exclude technical details from reservation views.',
78020
+ type: 'boolean',
78021
+ },
78022
+ exclude_staff_management: {
78023
+ default: false,
78024
+ description:
78025
+ 'Indicates whether the customer can manage staff for their properties.',
78026
+ type: 'boolean',
78027
+ },
78028
+ },
78029
+ type: 'object',
78030
+ },
78031
+ manage_devices: {
78032
+ description:
78033
+ 'Configuration for the manage devices feature.\n---\ndeprecated: Use `manage` instead.\n---',
78034
+ properties: {
78035
+ exclude: {
78036
+ default: false,
78037
+ description:
78038
+ 'Whether to exclude this feature from the portal.',
78039
+ type: 'boolean',
78040
+ },
78041
+ },
78042
+ type: 'object',
78043
+ },
78044
+ organize: {
78045
+ description: 'Configuration for the organize feature.',
78046
+ properties: {
78047
+ exclude: {
78048
+ default: false,
78049
+ description:
78050
+ 'Whether to exclude this feature from the portal.',
78051
+ type: 'boolean',
78052
+ },
78053
+ },
78054
+ type: 'object',
78055
+ },
78056
+ },
78057
+ type: 'object',
78058
+ },
77365
78059
  customer_portal_theme: {
77366
78060
  nullable: true,
77367
78061
  properties: {