@curviate/sdk 0.29.0 → 0.30.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.
package/dist/index.d.ts CHANGED
@@ -2409,7 +2409,7 @@ interface paths {
2409
2409
  put?: never;
2410
2410
  /**
2411
2411
  * Start a credential/cookie authentication
2412
- * @description Authenticate a LinkedIn account directly with credentials or a session cookie. The credential fields are NESTED, not top level: `auth_method: "credentials"` reads `credentials: { email, password }`, and `auth_method: "cookie"` reads `cookie: { li_at }` plus a top-level `user_agent`. Omit `account_id` to connect a NEW account into an empty `seat_id` (every seat id is listed with click-to-copy in the seat table on your dashboard); include `account_id` (in the body) to re-authenticate an EXISTING account in place. Returns the account on success (201 new / 200 reconnect), or a checkpoint challenge (202) carrying the account_id when LinkedIn requires verification. Complete the challenge with POST /v1/auth/checkpoint/solve (codes) or POST /v1/auth/checkpoint/poll (mobile-app approval). Connection scope (which LinkedIn products are enabled) is derived from the account's seat, there is no products input; the recorded scope is readable as `requested_products` on the account. A reconnect that changes scope must use credentials (a saved cookie cannot change scope). Pin a managed proxy with the optional `country`/`ip` or supply a `proxy` to override it.
2412
+ * @description Authenticate a LinkedIn account directly with credentials or a session cookie. The credential fields are NESTED, not top level: `auth_method: "credentials"` reads `credentials: { email, password }`, and `auth_method: "cookie"` reads `cookie: { li_at }` plus a top-level `user_agent`. Omit `account_id` to connect a NEW account into an empty `seat_id` (every seat id is listed with click-to-copy in the seat table on your dashboard); include `account_id` (in the body) to re-authenticate an EXISTING account in place. Returns the account on success (201 new / 200 reconnect), or a checkpoint challenge (202) carrying the account_id when LinkedIn requires verification. Complete the challenge with POST /v1/auth/checkpoint/solve (codes) or POST /v1/auth/checkpoint/poll (mobile-app approval). Connection scope (which LinkedIn products are enabled) is not something you list: the connection asks for every product and LinkedIn activates the ones the account actually has. The recorded scope is readable as `requested_products` on the account. One LinkedIn account can hold only one of the two premium surfaces, and when both are asked for Sales Navigator takes precedence, so pass the optional `linkedin_premium` (`sales_navigator` or `recruiter`) if the account holds both and you want the other one. Omit it and nothing is narrowed. It applies per connection and is not remembered, so state it on every connect and reconnect where Recruiter must win. A reconnect that changes scope must use credentials (a saved cookie cannot change scope), which includes any reconnect of an account connected before the full product set became the default. Pin a managed proxy with the optional `country`/`ip` or supply a `proxy` to override it.
2413
2413
  */
2414
2414
  post: operations["postV1AuthIntent"];
2415
2415
  delete?: never;
@@ -2611,7 +2611,7 @@ interface paths {
2611
2611
  };
2612
2612
  /**
2613
2613
  * List webhook event types
2614
- * @description Returns the complete canonical event catalogue (27 events) grouped by source: messaging (7), user (2), account_status (15), plus 3 tier-gated events. A local catalogue read: no platform call is made.
2614
+ * @description Returns the complete canonical event catalogue (27 events) grouped by source: messaging (7), user (2), account_status (15), plus 3 recruiter/sales_nav events. A local catalogue read: no platform call is made.
2615
2615
  */
2616
2616
  get: operations["getV1WebhooksEvents"];
2617
2617
  put?: never;
@@ -2742,11 +2742,6 @@ interface components {
2742
2742
  user_fixable: boolean;
2743
2743
  /** @description True when an identical retry is likely to succeed. */
2744
2744
  retry_likely_to_succeed: boolean;
2745
- /**
2746
- * @description Present on tier-gated denials, the seat tier required to proceed.
2747
- * @enum {string}
2748
- */
2749
- required_tier?: "core" | "sales_nav" | "recruiter";
2750
2745
  /** @description Present on a PLATFORM_RATE_LIMIT raised because one account-safety budget row is paused: LinkedIn refused a recent call on that row, so this one was refused locally without reaching LinkedIn. Names the paused row (for example profile_views, connection_requests_no_note). The pause is scoped to this row on this account; every other row keeps working. Absent on every other rate limit. Also present on BUDGET_EXHAUSTED, where it names the row that hit its CEILING rather than one LinkedIn paused: read the code to tell the two apart, because the recovery differs. Null on a BUDGET_EXHAUSTED whose reason is activity_window and whose action spends no budget of its own, because there is no row to name; hint.parameter still names the setting to change. Never null on a rate limit. */
2751
2746
  row?: string | null;
2752
2747
  /** @description Present on BUDGET_EXHAUSTED: the instant the refusal lifts, as an absolute instant rather than a duration, so it stays true however long you hold it. It is the window roll on a ceiling refusal and the next window open on an activity-window one. It is null in the two cases where no clock frees the account: the pending_invites gauge, whose backlog falls when invitations are accepted or withdrawn, and an InMail credit exhaustion (row inmail), which LinkedIn regrants on a schedule this product cannot read. */
@@ -2973,8 +2968,12 @@ interface operations {
2973
2968
  public_picture_url_large?: string;
2974
2969
  /** @description A private, time-limited picture download URL (present only in some responses). */
2975
2970
  private_picture_download_url?: string;
2976
- /** @description Profile summary/about section. Passes through verbatim, never stored. */
2971
+ /** @description Cover/background photo URL. */
2972
+ background_picture_url?: string;
2973
+ /** @description Mirrors the profile headline (the short line shown under the member's name). NOT the About/Summary section; see `bio` for that. */
2977
2974
  description?: string;
2975
+ /** @description The profile's About/Summary section (free text). Distinct from `description`, which mirrors the headline, not this field. */
2976
+ bio?: string;
2978
2977
  /** @description Geographic location string. */
2979
2978
  location?: string;
2980
2979
  /** @description ISO-8601 timestamp for when this profile record was created on the platform. */
@@ -2983,10 +2982,25 @@ interface operations {
2983
2982
  emails?: string[];
2984
2983
  /** @description Phone numbers associated with the profile. */
2985
2984
  phone_numbers?: string[];
2985
+ /** @description Self-declared social handles keyed by platform (e.g. 'github'), each an object naming the handle. Same sensitivity class as `emails`/`phone_numbers` (self-declared contact-class info). */
2986
+ social_handles?: {
2987
+ [key: string]: {
2988
+ /** @description The handle's display name. */
2989
+ name?: string;
2990
+ };
2991
+ };
2992
+ /** @description Personal/professional website URLs associated with the profile. */
2993
+ websites?: string[];
2986
2994
  /** @description Whether the authenticated account has blocked this member. */
2987
2995
  is_blocked?: boolean;
2988
2996
  /** @description Whether the authenticated account follows this member. */
2989
2997
  is_following?: boolean;
2998
+ /** @description Whether LinkedIn has verified this member. */
2999
+ is_verified?: boolean;
3000
+ /** @description Same value as specifics.is_premium; prefer the nested field. */
3001
+ is_premium?: boolean;
3002
+ /** @description The member's profile language. Distinct from specifics.default_locale/specifics.supported_locales. */
3003
+ language?: string;
2990
3004
  /** @description Total follower count. */
2991
3005
  followers_count?: number;
2992
3006
  /** @description Total 1st-degree connection count. */
@@ -4241,7 +4255,7 @@ interface operations {
4241
4255
  "application/json": components["schemas"]["Error"];
4242
4256
  };
4243
4257
  };
4244
- /** @description The account does not have the required Core seat. */
4258
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
4245
4259
  403: {
4246
4260
  headers: {
4247
4261
  [name: string]: unknown;
@@ -4289,7 +4303,7 @@ interface operations {
4289
4303
  "application/json": components["schemas"]["Error"];
4290
4304
  };
4291
4305
  };
4292
- /** @description A temporary error occurred. Please try again. */
4306
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
4293
4307
  502: {
4294
4308
  headers: {
4295
4309
  [name: string]: unknown;
@@ -4434,7 +4448,7 @@ interface operations {
4434
4448
  "application/json": components["schemas"]["Error"];
4435
4449
  };
4436
4450
  };
4437
- /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Please try again. */
4451
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
4438
4452
  502: {
4439
4453
  headers: {
4440
4454
  [name: string]: unknown;
@@ -4577,7 +4591,7 @@ interface operations {
4577
4591
  "application/json": components["schemas"]["Error"];
4578
4592
  };
4579
4593
  };
4580
- /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Please try again. */
4594
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
4581
4595
  502: {
4582
4596
  headers: {
4583
4597
  [name: string]: unknown;
@@ -4720,7 +4734,7 @@ interface operations {
4720
4734
  "application/json": components["schemas"]["Error"];
4721
4735
  };
4722
4736
  };
4723
- /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Please try again. */
4737
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
4724
4738
  502: {
4725
4739
  headers: {
4726
4740
  [name: string]: unknown;
@@ -4859,7 +4873,7 @@ interface operations {
4859
4873
  "application/json": components["schemas"]["Error"];
4860
4874
  };
4861
4875
  };
4862
- /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Please try again. */
4876
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
4863
4877
  502: {
4864
4878
  headers: {
4865
4879
  [name: string]: unknown;
@@ -5609,7 +5623,7 @@ interface operations {
5609
5623
  "application/json": components["schemas"]["Error"];
5610
5624
  };
5611
5625
  };
5612
- /** @description The account does not have the required Core seat. */
5626
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
5613
5627
  403: {
5614
5628
  headers: {
5615
5629
  [name: string]: unknown;
@@ -5800,7 +5814,7 @@ interface operations {
5800
5814
  "application/json": components["schemas"]["Error"];
5801
5815
  };
5802
5816
  };
5803
- /** @description The account does not have the required Core seat. */
5817
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
5804
5818
  403: {
5805
5819
  headers: {
5806
5820
  [name: string]: unknown;
@@ -5994,7 +6008,7 @@ interface operations {
5994
6008
  "application/json": components["schemas"]["Error"];
5995
6009
  };
5996
6010
  };
5997
- /** @description The account does not have the required Core seat. */
6011
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
5998
6012
  403: {
5999
6013
  headers: {
6000
6014
  [name: string]: unknown;
@@ -6174,7 +6188,7 @@ interface operations {
6174
6188
  "application/json": components["schemas"]["Error"];
6175
6189
  };
6176
6190
  };
6177
- /** @description The account does not have the required Core seat. */
6191
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
6178
6192
  403: {
6179
6193
  headers: {
6180
6194
  [name: string]: unknown;
@@ -6332,7 +6346,7 @@ interface operations {
6332
6346
  "application/json": components["schemas"]["Error"];
6333
6347
  };
6334
6348
  };
6335
- /** @description The account does not administer this page with the invite-to-follow entitlement (fail-closed), or lacks the required Core seat. */
6349
+ /** @description The account does not administer this page with the invite-to-follow entitlement (fail-closed), or lacks an active seat. */
6336
6350
  403: {
6337
6351
  headers: {
6338
6352
  [name: string]: unknown;
@@ -6499,7 +6513,7 @@ interface operations {
6499
6513
  "application/json": components["schemas"]["Error"];
6500
6514
  };
6501
6515
  };
6502
- /** @description The account does not administer this page (follower analytics is admin-gated), or lacks the required Core seat. */
6516
+ /** @description The account does not administer this page (follower analytics is admin-gated), or lacks an active seat. */
6503
6517
  403: {
6504
6518
  headers: {
6505
6519
  [name: string]: unknown;
@@ -6547,7 +6561,7 @@ interface operations {
6547
6561
  "application/json": components["schemas"]["Error"];
6548
6562
  };
6549
6563
  };
6550
- /** @description A temporary error occurred. Please try again. */
6564
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
6551
6565
  502: {
6552
6566
  headers: {
6553
6567
  [name: string]: unknown;
@@ -6647,7 +6661,7 @@ interface operations {
6647
6661
  "application/json": components["schemas"]["Error"];
6648
6662
  };
6649
6663
  };
6650
- /** @description The account does not administer this page with the invite-to-follow entitlement, or lacks the required Core seat. */
6664
+ /** @description The account does not administer this page with the invite-to-follow entitlement, or lacks an active seat. */
6651
6665
  403: {
6652
6666
  headers: {
6653
6667
  [name: string]: unknown;
@@ -6695,7 +6709,7 @@ interface operations {
6695
6709
  "application/json": components["schemas"]["Error"];
6696
6710
  };
6697
6711
  };
6698
- /** @description A temporary error occurred. Please try again. */
6712
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
6699
6713
  502: {
6700
6714
  headers: {
6701
6715
  [name: string]: unknown;
@@ -6842,7 +6856,7 @@ interface operations {
6842
6856
  "application/json": components["schemas"]["Error"];
6843
6857
  };
6844
6858
  };
6845
- /** @description The account does not administer this page (the admin gate), or lacks the required Core seat. */
6859
+ /** @description The account does not administer this page (the admin gate), or lacks an active seat. */
6846
6860
  403: {
6847
6861
  headers: {
6848
6862
  [name: string]: unknown;
@@ -6890,7 +6904,7 @@ interface operations {
6890
6904
  "application/json": components["schemas"]["Error"];
6891
6905
  };
6892
6906
  };
6893
- /** @description A temporary error occurred. Please try again. */
6907
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
6894
6908
  502: {
6895
6909
  headers: {
6896
6910
  [name: string]: unknown;
@@ -7025,7 +7039,7 @@ interface operations {
7025
7039
  "application/json": components["schemas"]["Error"];
7026
7040
  };
7027
7041
  };
7028
- /** @description The account does not administer this page (the admin gate), or lacks the required Core seat. */
7042
+ /** @description The account does not administer this page (the admin gate), or lacks an active seat. */
7029
7043
  403: {
7030
7044
  headers: {
7031
7045
  [name: string]: unknown;
@@ -7073,7 +7087,7 @@ interface operations {
7073
7087
  "application/json": components["schemas"]["Error"];
7074
7088
  };
7075
7089
  };
7076
- /** @description A temporary error occurred. Please try again. */
7090
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
7077
7091
  502: {
7078
7092
  headers: {
7079
7093
  [name: string]: unknown;
@@ -7201,7 +7215,7 @@ interface operations {
7201
7215
  "application/json": components["schemas"]["Error"];
7202
7216
  };
7203
7217
  };
7204
- /** @description The account does not administer this page (the admin gate), or lacks the required Core seat. */
7218
+ /** @description The account does not administer this page (the admin gate), or lacks an active seat. */
7205
7219
  403: {
7206
7220
  headers: {
7207
7221
  [name: string]: unknown;
@@ -7249,7 +7263,7 @@ interface operations {
7249
7263
  "application/json": components["schemas"]["Error"];
7250
7264
  };
7251
7265
  };
7252
- /** @description A temporary error occurred. Please try again. */
7266
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
7253
7267
  502: {
7254
7268
  headers: {
7255
7269
  [name: string]: unknown;
@@ -7362,7 +7376,7 @@ interface operations {
7362
7376
  "application/json": components["schemas"]["Error"];
7363
7377
  };
7364
7378
  };
7365
- /** @description The account does not administer this page (fail-closed, the target company is absent from the account's administered pages), or the account lacks the required Core seat. */
7379
+ /** @description The account does not administer this page (fail-closed, the target company is absent from the account's administered pages), or the account lacks an active seat. */
7366
7380
  403: {
7367
7381
  headers: {
7368
7382
  [name: string]: unknown;
@@ -7428,7 +7442,7 @@ interface operations {
7428
7442
  "application/json": components["schemas"]["Error"];
7429
7443
  };
7430
7444
  };
7431
- /** @description A temporary error occurred. Please try again. */
7445
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
7432
7446
  502: {
7433
7447
  headers: {
7434
7448
  [name: string]: unknown;
@@ -7544,7 +7558,7 @@ interface operations {
7544
7558
  "application/json": components["schemas"]["Error"];
7545
7559
  };
7546
7560
  };
7547
- /** @description The account does not administer this page (the admin gate), or lacks the required Core seat. */
7561
+ /** @description The account does not administer this page (the admin gate), or lacks an active seat. */
7548
7562
  403: {
7549
7563
  headers: {
7550
7564
  [name: string]: unknown;
@@ -7592,7 +7606,7 @@ interface operations {
7592
7606
  "application/json": components["schemas"]["Error"];
7593
7607
  };
7594
7608
  };
7595
- /** @description A temporary error occurred. Please try again. */
7609
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
7596
7610
  502: {
7597
7611
  headers: {
7598
7612
  [name: string]: unknown;
@@ -7750,7 +7764,7 @@ interface operations {
7750
7764
  "application/json": components["schemas"]["Error"];
7751
7765
  };
7752
7766
  };
7753
- /** @description The account does not administer this page (the admin gate), or lacks the required Core seat. */
7767
+ /** @description The account does not administer this page (the admin gate), or lacks an active seat. */
7754
7768
  403: {
7755
7769
  headers: {
7756
7770
  [name: string]: unknown;
@@ -7798,7 +7812,7 @@ interface operations {
7798
7812
  "application/json": components["schemas"]["Error"];
7799
7813
  };
7800
7814
  };
7801
- /** @description A temporary error occurred. Please try again. */
7815
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
7802
7816
  502: {
7803
7817
  headers: {
7804
7818
  [name: string]: unknown;
@@ -7943,7 +7957,7 @@ interface operations {
7943
7957
  "application/json": components["schemas"]["Error"];
7944
7958
  };
7945
7959
  };
7946
- /** @description No active Core seat for this tenant. */
7960
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
7947
7961
  403: {
7948
7962
  headers: {
7949
7963
  [name: string]: unknown;
@@ -8119,7 +8133,7 @@ interface operations {
8119
8133
  "application/json": components["schemas"]["Error"];
8120
8134
  };
8121
8135
  };
8122
- /** @description No active Core seat for this tenant. */
8136
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
8123
8137
  403: {
8124
8138
  headers: {
8125
8139
  [name: string]: unknown;
@@ -8282,7 +8296,7 @@ interface operations {
8282
8296
  "application/json": components["schemas"]["Error"];
8283
8297
  };
8284
8298
  };
8285
- /** @description No active Core seat for this tenant. */
8299
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
8286
8300
  403: {
8287
8301
  headers: {
8288
8302
  [name: string]: unknown;
@@ -9830,7 +9844,7 @@ interface operations {
9830
9844
  "application/json": components["schemas"]["Error"];
9831
9845
  };
9832
9846
  };
9833
- /** @description A temporary error occurred. Please try again. */
9847
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
9834
9848
  502: {
9835
9849
  headers: {
9836
9850
  [name: string]: unknown;
@@ -13148,7 +13162,7 @@ interface operations {
13148
13162
  "application/json": components["schemas"]["Error"];
13149
13163
  };
13150
13164
  };
13151
- /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Please try again. */
13165
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
13152
13166
  502: {
13153
13167
  headers: {
13154
13168
  [name: string]: unknown;
@@ -13272,7 +13286,7 @@ interface operations {
13272
13286
  "application/json": components["schemas"]["Error"];
13273
13287
  };
13274
13288
  };
13275
- /** @description A temporary upstream error occurred. Please try again. */
13289
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
13276
13290
  502: {
13277
13291
  headers: {
13278
13292
  [name: string]: unknown;
@@ -13396,7 +13410,7 @@ interface operations {
13396
13410
  "application/json": components["schemas"]["Error"];
13397
13411
  };
13398
13412
  };
13399
- /** @description A temporary upstream error occurred. Please try again. */
13413
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
13400
13414
  502: {
13401
13415
  headers: {
13402
13416
  [name: string]: unknown;
@@ -16099,7 +16113,7 @@ interface operations {
16099
16113
  "application/json": components["schemas"]["Error"];
16100
16114
  };
16101
16115
  };
16102
- /** @description The account does not have the required Core seat. */
16116
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
16103
16117
  403: {
16104
16118
  headers: {
16105
16119
  [name: string]: unknown;
@@ -16350,7 +16364,7 @@ interface operations {
16350
16364
  "application/json": components["schemas"]["Error"];
16351
16365
  };
16352
16366
  };
16353
- /** @description The account does not have the required Core seat. */
16367
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
16354
16368
  403: {
16355
16369
  headers: {
16356
16370
  [name: string]: unknown;
@@ -16575,7 +16589,7 @@ interface operations {
16575
16589
  "application/json": components["schemas"]["Error"];
16576
16590
  };
16577
16591
  };
16578
- /** @description The account does not have the required Core seat. */
16592
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
16579
16593
  403: {
16580
16594
  headers: {
16581
16595
  [name: string]: unknown;
@@ -16828,7 +16842,7 @@ interface operations {
16828
16842
  "application/json": components["schemas"]["Error"];
16829
16843
  };
16830
16844
  };
16831
- /** @description The account does not have the required Core seat. */
16845
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
16832
16846
  403: {
16833
16847
  headers: {
16834
16848
  [name: string]: unknown;
@@ -16998,7 +17012,7 @@ interface operations {
16998
17012
  "application/json": components["schemas"]["Error"];
16999
17013
  };
17000
17014
  };
17001
- /** @description The account does not have the required Core seat. */
17015
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
17002
17016
  403: {
17003
17017
  headers: {
17004
17018
  [name: string]: unknown;
@@ -17186,7 +17200,7 @@ interface operations {
17186
17200
  "application/json": components["schemas"]["Error"];
17187
17201
  };
17188
17202
  };
17189
- /** @description Forbidden. Either the account does not have the required Core seat (TIER_NOT_ACTIVE, carries required_tier:'core'; upgrade the Curviate subscription), or LINKEDIN_FEATURE_NOT_SUBSCRIBED, the connected LinkedIn account lacks the subscription/entitlement LinkedIn requires to publish job postings, even a FREE posting (activate it on LinkedIn; reconnecting will not help). The code field distinguishes the two. */
17203
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED, the connected LinkedIn account lacks the subscription/entitlement LinkedIn requires to publish job postings, even a FREE posting (activate it on LinkedIn; reconnecting will not help). The code field distinguishes the two. */
17190
17204
  403: {
17191
17205
  headers: {
17192
17206
  [name: string]: unknown;
@@ -17322,7 +17336,7 @@ interface operations {
17322
17336
  "application/json": components["schemas"]["Error"];
17323
17337
  };
17324
17338
  };
17325
- /** @description Forbidden. Either the account does not have the required Core seat (TIER_NOT_ACTIVE, carries required_tier:'core'; upgrade the Curviate subscription), or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the connected LinkedIn account lacks the subscription/entitlement LinkedIn requires to manage job postings (the same gate that blocks publish also blocks close; activate it on LinkedIn; reconnecting will not help). The code field distinguishes the two. */
17339
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the connected LinkedIn account lacks the subscription/entitlement LinkedIn requires to manage job postings (the same gate that blocks publish also blocks close; activate it on LinkedIn; reconnecting will not help). The code field distinguishes the two. */
17326
17340
  403: {
17327
17341
  headers: {
17328
17342
  [name: string]: unknown;
@@ -17545,7 +17559,7 @@ interface operations {
17545
17559
  "application/json": components["schemas"]["Error"];
17546
17560
  };
17547
17561
  };
17548
- /** @description The account does not have the required Core seat. */
17562
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
17549
17563
  403: {
17550
17564
  headers: {
17551
17565
  [name: string]: unknown;
@@ -17737,7 +17751,7 @@ interface operations {
17737
17751
  "application/json": components["schemas"]["Error"];
17738
17752
  };
17739
17753
  };
17740
- /** @description The account does not have the required Core seat. */
17754
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
17741
17755
  403: {
17742
17756
  headers: {
17743
17757
  [name: string]: unknown;
@@ -17859,7 +17873,7 @@ interface operations {
17859
17873
  "application/json": components["schemas"]["Error"];
17860
17874
  };
17861
17875
  };
17862
- /** @description The account does not have the required Core seat. */
17876
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
17863
17877
  403: {
17864
17878
  headers: {
17865
17879
  [name: string]: unknown;
@@ -19325,7 +19339,7 @@ interface operations {
19325
19339
  "application/json": components["schemas"]["Error"];
19326
19340
  };
19327
19341
  };
19328
- /** @description This account does not have an active Core seat. */
19342
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
19329
19343
  403: {
19330
19344
  headers: {
19331
19345
  [name: string]: unknown;
@@ -19364,7 +19378,7 @@ interface operations {
19364
19378
  "application/json": components["schemas"]["Error"];
19365
19379
  };
19366
19380
  };
19367
- /** @description A temporary error occurred. Please try again. */
19381
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
19368
19382
  502: {
19369
19383
  headers: {
19370
19384
  [name: string]: unknown;
@@ -19452,7 +19466,7 @@ interface operations {
19452
19466
  "application/json": components["schemas"]["Error"];
19453
19467
  };
19454
19468
  };
19455
- /** @description This account does not have an active Core seat. */
19469
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
19456
19470
  403: {
19457
19471
  headers: {
19458
19472
  [name: string]: unknown;
@@ -19500,7 +19514,7 @@ interface operations {
19500
19514
  "application/json": components["schemas"]["Error"];
19501
19515
  };
19502
19516
  };
19503
- /** @description A temporary error occurred. Please try again. */
19517
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
19504
19518
  502: {
19505
19519
  headers: {
19506
19520
  [name: string]: unknown;
@@ -19583,7 +19597,7 @@ interface operations {
19583
19597
  "application/json": components["schemas"]["Error"];
19584
19598
  };
19585
19599
  };
19586
- /** @description This account does not have an active Core seat. */
19600
+ /** @description Forbidden. NO_ACTIVE_SEAT: the account is not attached to an active seat. */
19587
19601
  403: {
19588
19602
  headers: {
19589
19603
  [name: string]: unknown;
@@ -19622,7 +19636,7 @@ interface operations {
19622
19636
  "application/json": components["schemas"]["Error"];
19623
19637
  };
19624
19638
  };
19625
- /** @description A temporary error occurred. Please try again. */
19639
+ /** @description A temporary upstream error occurred, or the upstream response could not be interpreted. Check `retry_likely_to_succeed`: a temporary error is worth retrying, a response that could not be interpreted is not, and carries `retry_hint: {"kind": "never"}`. */
19626
19640
  502: {
19627
19641
  headers: {
19628
19642
  [name: string]: unknown;
@@ -20030,7 +20044,7 @@ interface operations {
20030
20044
  "application/json": components["schemas"]["Error"];
20031
20045
  };
20032
20046
  };
20033
- /** @description Forbidden. Either TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on (carries required_tier:'recruiter'; upgrade the Curviate subscription), or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the connected LinkedIn account lacks an active Recruiter subscription. The code field distinguishes the two. */
20047
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
20034
20048
  403: {
20035
20049
  headers: {
20036
20050
  [name: string]: unknown;
@@ -20248,7 +20262,7 @@ interface operations {
20248
20262
  "application/json": components["schemas"]["Error"];
20249
20263
  };
20250
20264
  };
20251
- /** @description Forbidden. Either TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on (carries required_tier:'recruiter'; upgrade the Curviate subscription), or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the connected LinkedIn account lacks the Recruiter subscription (activate it on LinkedIn; reconnecting will not help). The code field distinguishes the two. */
20265
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
20252
20266
  403: {
20253
20267
  headers: {
20254
20268
  [name: string]: unknown;
@@ -20561,7 +20575,7 @@ interface operations {
20561
20575
  "application/json": components["schemas"]["Error"];
20562
20576
  };
20563
20577
  };
20564
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
20578
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
20565
20579
  403: {
20566
20580
  headers: {
20567
20581
  [name: string]: unknown;
@@ -20754,7 +20768,7 @@ interface operations {
20754
20768
  "application/json": components["schemas"]["Error"];
20755
20769
  };
20756
20770
  };
20757
- /** @description Forbidden. Either TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on (carries required_tier:'recruiter'; upgrade the Curviate subscription), or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the connected LinkedIn account does not have an active Recruiter subscription. The code field distinguishes the two. */
20771
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
20758
20772
  403: {
20759
20773
  headers: {
20760
20774
  [name: string]: unknown;
@@ -20988,7 +21002,7 @@ interface operations {
20988
21002
  "application/json": components["schemas"]["Error"];
20989
21003
  };
20990
21004
  };
20991
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
21005
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
20992
21006
  403: {
20993
21007
  headers: {
20994
21008
  [name: string]: unknown;
@@ -21192,7 +21206,7 @@ interface operations {
21192
21206
  "application/json": components["schemas"]["Error"];
21193
21207
  };
21194
21208
  };
21195
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
21209
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
21196
21210
  403: {
21197
21211
  headers: {
21198
21212
  [name: string]: unknown;
@@ -21350,7 +21364,7 @@ interface operations {
21350
21364
  "application/json": components["schemas"]["Error"];
21351
21365
  };
21352
21366
  };
21353
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
21367
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
21354
21368
  403: {
21355
21369
  headers: {
21356
21370
  [name: string]: unknown;
@@ -21604,7 +21618,7 @@ interface operations {
21604
21618
  "application/json": components["schemas"]["Error"];
21605
21619
  };
21606
21620
  };
21607
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
21621
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
21608
21622
  403: {
21609
21623
  headers: {
21610
21624
  [name: string]: unknown;
@@ -21912,7 +21926,7 @@ interface operations {
21912
21926
  "application/json": components["schemas"]["Error"];
21913
21927
  };
21914
21928
  };
21915
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
21929
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
21916
21930
  403: {
21917
21931
  headers: {
21918
21932
  [name: string]: unknown;
@@ -22256,7 +22270,7 @@ interface operations {
22256
22270
  "application/json": components["schemas"]["Error"];
22257
22271
  };
22258
22272
  };
22259
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
22273
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
22260
22274
  403: {
22261
22275
  headers: {
22262
22276
  [name: string]: unknown;
@@ -22436,7 +22450,7 @@ interface operations {
22436
22450
  "application/json": components["schemas"]["Error"];
22437
22451
  };
22438
22452
  };
22439
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
22453
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
22440
22454
  403: {
22441
22455
  headers: {
22442
22456
  [name: string]: unknown;
@@ -22644,7 +22658,7 @@ interface operations {
22644
22658
  "application/json": components["schemas"]["Error"];
22645
22659
  };
22646
22660
  };
22647
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
22661
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
22648
22662
  403: {
22649
22663
  headers: {
22650
22664
  [name: string]: unknown;
@@ -22799,7 +22813,7 @@ interface operations {
22799
22813
  "application/json": components["schemas"]["Error"];
22800
22814
  };
22801
22815
  };
22802
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
22816
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
22803
22817
  403: {
22804
22818
  headers: {
22805
22819
  [name: string]: unknown;
@@ -22964,7 +22978,7 @@ interface operations {
22964
22978
  "application/json": components["schemas"]["Error"];
22965
22979
  };
22966
22980
  };
22967
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
22981
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
22968
22982
  403: {
22969
22983
  headers: {
22970
22984
  [name: string]: unknown;
@@ -23172,7 +23186,7 @@ interface operations {
23172
23186
  "application/json": components["schemas"]["Error"];
23173
23187
  };
23174
23188
  };
23175
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
23189
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
23176
23190
  403: {
23177
23191
  headers: {
23178
23192
  [name: string]: unknown;
@@ -23352,7 +23366,7 @@ interface operations {
23352
23366
  "application/json": components["schemas"]["Error"];
23353
23367
  };
23354
23368
  };
23355
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
23369
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
23356
23370
  403: {
23357
23371
  headers: {
23358
23372
  [name: string]: unknown;
@@ -23560,7 +23574,7 @@ interface operations {
23560
23574
  "application/json": components["schemas"]["Error"];
23561
23575
  };
23562
23576
  };
23563
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
23577
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
23564
23578
  403: {
23565
23579
  headers: {
23566
23580
  [name: string]: unknown;
@@ -23755,7 +23769,7 @@ interface operations {
23755
23769
  "application/json": components["schemas"]["Error"];
23756
23770
  };
23757
23771
  };
23758
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
23772
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
23759
23773
  403: {
23760
23774
  headers: {
23761
23775
  [name: string]: unknown;
@@ -23893,7 +23907,7 @@ interface operations {
23893
23907
  "application/json": components["schemas"]["Error"];
23894
23908
  };
23895
23909
  };
23896
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
23910
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
23897
23911
  403: {
23898
23912
  headers: {
23899
23913
  [name: string]: unknown;
@@ -24038,7 +24052,7 @@ interface operations {
24038
24052
  "application/json": components["schemas"]["Error"];
24039
24053
  };
24040
24054
  };
24041
- /** @description Forbidden. TIER_NOT_ACTIVE (no Recruiter seat) or LINKEDIN_FEATURE_NOT_SUBSCRIBED (no active LinkedIn Recruiter subscription). The code field distinguishes the two. */
24055
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
24042
24056
  403: {
24043
24057
  headers: {
24044
24058
  [name: string]: unknown;
@@ -24370,7 +24384,7 @@ interface operations {
24370
24384
  "application/json": components["schemas"]["Error"];
24371
24385
  };
24372
24386
  };
24373
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
24387
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
24374
24388
  403: {
24375
24389
  headers: {
24376
24390
  [name: string]: unknown;
@@ -24578,7 +24592,7 @@ interface operations {
24578
24592
  "application/json": components["schemas"]["Error"];
24579
24593
  };
24580
24594
  };
24581
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
24595
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
24582
24596
  403: {
24583
24597
  headers: {
24584
24598
  [name: string]: unknown;
@@ -24700,7 +24714,7 @@ interface operations {
24700
24714
  "application/json": components["schemas"]["Error"];
24701
24715
  };
24702
24716
  };
24703
- /** @description Forbidden. TIER_NOT_ACTIVE, the Curviate seat lacks the Recruiter add-on, or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the LinkedIn account does not have an active Recruiter subscription. */
24717
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Recruiter subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
24704
24718
  403: {
24705
24719
  headers: {
24706
24720
  [name: string]: unknown;
@@ -24860,7 +24874,7 @@ interface operations {
24860
24874
  "application/json": components["schemas"]["Error"];
24861
24875
  };
24862
24876
  };
24863
- /** @description Forbidden. Either TIER_NOT_ACTIVE, the Curviate seat lacks the Sales Navigator add-on (carries required_tier:'sales_nav'; upgrade the Curviate subscription), or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the connected LinkedIn account lacks the Sales Navigator subscription (activate it on LinkedIn; reconnecting will not help). The code field distinguishes the two. */
24877
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Sales Navigator subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
24864
24878
  403: {
24865
24879
  headers: {
24866
24880
  [name: string]: unknown;
@@ -25175,7 +25189,7 @@ interface operations {
25175
25189
  "application/json": components["schemas"]["Error"];
25176
25190
  };
25177
25191
  };
25178
- /** @description Forbidden. Either TIER_NOT_ACTIVE, the Curviate seat lacks the Sales Navigator add-on (carries required_tier:'sales_nav'; upgrade the Curviate subscription), or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the connected LinkedIn account lacks the Sales Navigator subscription (activate it on LinkedIn; reconnecting will not help). The code field distinguishes the two. */
25192
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Sales Navigator subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
25179
25193
  403: {
25180
25194
  headers: {
25181
25195
  [name: string]: unknown;
@@ -25323,7 +25337,7 @@ interface operations {
25323
25337
  "application/json": components["schemas"]["Error"];
25324
25338
  };
25325
25339
  };
25326
- /** @description Forbidden. Either TIER_NOT_ACTIVE, the Curviate seat lacks the Sales Navigator add-on (carries required_tier:'sales_nav'; upgrade the Curviate subscription), or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the connected LinkedIn account lacks the Sales Navigator subscription (activate it on LinkedIn; reconnecting will not help). The code field distinguishes the two. */
25340
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Sales Navigator subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
25327
25341
  403: {
25328
25342
  headers: {
25329
25343
  [name: string]: unknown;
@@ -25480,7 +25494,7 @@ interface operations {
25480
25494
  "application/json": components["schemas"]["Error"];
25481
25495
  };
25482
25496
  };
25483
- /** @description Forbidden. Either TIER_NOT_ACTIVE, the Curviate seat lacks the Sales Navigator add-on (carries required_tier:'sales_nav'; upgrade the Curviate subscription), or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the connected LinkedIn account lacks the Sales Navigator subscription (activate it on LinkedIn; reconnecting will not help). The code field distinguishes the two. */
25497
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Sales Navigator subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
25484
25498
  403: {
25485
25499
  headers: {
25486
25500
  [name: string]: unknown;
@@ -25692,7 +25706,7 @@ interface operations {
25692
25706
  "application/json": components["schemas"]["Error"];
25693
25707
  };
25694
25708
  };
25695
- /** @description Forbidden. Either TIER_NOT_ACTIVE, the Curviate seat lacks the Sales Navigator add-on (carries required_tier:'sales_nav'; upgrade the Curviate subscription), or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the connected LinkedIn account lacks the Sales Navigator subscription (activate it on LinkedIn; reconnecting will not help). The code field distinguishes the two. */
25709
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Sales Navigator subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
25696
25710
  403: {
25697
25711
  headers: {
25698
25712
  [name: string]: unknown;
@@ -26078,7 +26092,7 @@ interface operations {
26078
26092
  "application/json": components["schemas"]["Error"];
26079
26093
  };
26080
26094
  };
26081
- /** @description Forbidden. Either TIER_NOT_ACTIVE, the Curviate seat lacks the Sales Navigator add-on (carries required_tier:'sales_nav'; upgrade the Curviate subscription), or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the connected LinkedIn account lacks the Sales Navigator subscription (activate it on LinkedIn; reconnecting will not help). The code field distinguishes the two. */
26095
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Sales Navigator subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
26082
26096
  403: {
26083
26097
  headers: {
26084
26098
  [name: string]: unknown;
@@ -26225,7 +26239,7 @@ interface operations {
26225
26239
  "application/json": components["schemas"]["Error"];
26226
26240
  };
26227
26241
  };
26228
- /** @description Forbidden. Either TIER_NOT_ACTIVE, the Curviate seat lacks the Sales Navigator add-on (carries required_tier:'sales_nav'; upgrade the Curviate subscription), or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the connected LinkedIn account lacks the Sales Navigator subscription (activate it on LinkedIn; reconnecting will not help). The code field distinguishes the two. */
26242
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Sales Navigator subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
26229
26243
  403: {
26230
26244
  headers: {
26231
26245
  [name: string]: unknown;
@@ -26372,7 +26386,7 @@ interface operations {
26372
26386
  "application/json": components["schemas"]["Error"];
26373
26387
  };
26374
26388
  };
26375
- /** @description Forbidden. Either TIER_NOT_ACTIVE, the Curviate seat lacks the Sales Navigator add-on (carries required_tier:'sales_nav'; upgrade the Curviate subscription), or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the connected LinkedIn account lacks the Sales Navigator subscription (activate it on LinkedIn; reconnecting will not help). The code field distinguishes the two. */
26389
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Sales Navigator subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
26376
26390
  403: {
26377
26391
  headers: {
26378
26392
  [name: string]: unknown;
@@ -26533,7 +26547,7 @@ interface operations {
26533
26547
  "application/json": components["schemas"]["Error"];
26534
26548
  };
26535
26549
  };
26536
- /** @description Forbidden. Either TIER_NOT_ACTIVE, the Curviate seat lacks the Sales Navigator add-on (carries required_tier:'sales_nav'; upgrade the Curviate subscription), or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the connected LinkedIn account lacks the Sales Navigator subscription (activate it on LinkedIn; reconnecting will not help). The code field distinguishes the two. */
26550
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Sales Navigator subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
26537
26551
  403: {
26538
26552
  headers: {
26539
26553
  [name: string]: unknown;
@@ -27014,7 +27028,7 @@ interface operations {
27014
27028
  "application/json": components["schemas"]["Error"];
27015
27029
  };
27016
27030
  };
27017
- /** @description Forbidden. Either TIER_NOT_ACTIVE, the Curviate seat lacks the Sales Navigator add-on (carries required_tier:'sales_nav'; upgrade the Curviate subscription), or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the connected LinkedIn account lacks the Sales Navigator subscription (activate it on LinkedIn; reconnecting will not help). The code field distinguishes the two. */
27031
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Sales Navigator subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
27018
27032
  403: {
27019
27033
  headers: {
27020
27034
  [name: string]: unknown;
@@ -27286,7 +27300,7 @@ interface operations {
27286
27300
  "application/json": components["schemas"]["Error"];
27287
27301
  };
27288
27302
  };
27289
- /** @description Forbidden. Either TIER_NOT_ACTIVE, the Curviate seat lacks the Sales Navigator add-on (carries required_tier:'sales_nav'; upgrade the Curviate subscription), or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the connected LinkedIn account lacks the Sales Navigator subscription (activate it on LinkedIn; reconnecting will not help). The code field distinguishes the two. */
27303
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Sales Navigator subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
27290
27304
  403: {
27291
27305
  headers: {
27292
27306
  [name: string]: unknown;
@@ -27687,7 +27701,7 @@ interface operations {
27687
27701
  "application/json": components["schemas"]["Error"];
27688
27702
  };
27689
27703
  };
27690
- /** @description Forbidden. Either TIER_NOT_ACTIVE, the Curviate seat lacks the Sales Navigator add-on (carries required_tier:'sales_nav'; upgrade the Curviate subscription), or LINKEDIN_FEATURE_NOT_SUBSCRIBED; the connected LinkedIn account lacks the Sales Navigator subscription (activate it on LinkedIn; reconnecting will not help). The code field distinguishes the two. */
27704
+ /** @description Forbidden. Either NO_ACTIVE_SEAT (the account is not attached to an active seat), or LINKEDIN_FEATURE_NOT_SUBSCRIBED (the connected LinkedIn account lacks the Sales Navigator subscription; activate it on LinkedIn, reconnecting will not help). The code field distinguishes the two. */
27691
27705
  403: {
27692
27706
  headers: {
27693
27707
  [name: string]: unknown;
@@ -27817,7 +27831,7 @@ interface operations {
27817
27831
  seat_id?: string | null;
27818
27832
  /** @description ISO-8601 UTC connection timestamp. */
27819
27833
  connected_at?: string | null;
27820
- /** @description The seat-derived connection scope this account was last connected with (e.g. ["classic","company","sales_navigator"]). Scope is derived from the account's seat; there is no products input. Null for accounts connected before this was recorded; not attachment truth for Company Pages. */
27834
+ /** @description The connection scope this account was last connected with (e.g. ["classic","company","sales_navigator","recruiter"]). A connect asks for every product and LinkedIn activates the ones the account actually has, so this is what was ASKED for, narrowed only by an explicit linkedin_premium on that connect. A linkedin_premium narrowing is not remembered between connects, so this shows what the LAST connect asked for and a reconnect that omits the field widens it again. Null for accounts connected before this was recorded; not attachment truth for Company Pages. */
27821
27835
  requested_products?: ("classic" | "company" | "sales_navigator" | "recruiter")[] | null;
27822
27836
  /** @description ISO-8601 UTC creation timestamp of the underlying LinkedIn account, distinct from connected_at. Null until the first background enrichment lands. */
27823
27837
  substrate_created_at?: string | null;
@@ -27925,7 +27939,7 @@ interface operations {
27925
27939
  last_checked_at?: string;
27926
27940
  /** @description The seat this account occupies (null for an admin seatless account). */
27927
27941
  seat_id?: string | null;
27928
- /** @description The seat-derived connection scope this account was last connected with (e.g. ["classic","company","sales_navigator"]). Scope is derived from the account's seat; there is no products input. Null for accounts connected before this was recorded; not attachment truth for Company Pages. */
27942
+ /** @description The connection scope this account was last connected with (e.g. ["classic","company","sales_navigator","recruiter"]). A connect asks for every product and LinkedIn activates the ones the account actually has, so this is what was ASKED for, narrowed only by an explicit linkedin_premium on that connect. A linkedin_premium narrowing is not remembered between connects, so this shows what the LAST connect asked for and a reconnect that omits the field widens it again. Null for accounts connected before this was recorded; not attachment truth for Company Pages. */
27929
27943
  requested_products?: ("classic" | "company" | "sales_navigator" | "recruiter")[] | null;
27930
27944
  /** @description ISO-8601 UTC creation timestamp of the underlying LinkedIn account, distinct from connected_at. Null until the first background enrichment lands. */
27931
27945
  substrate_created_at?: string | null;
@@ -28353,10 +28367,10 @@ interface operations {
28353
28367
  /** @description Present = re-authenticate this existing account in place (reconnect); omit = connect a new account. */
28354
28368
  account_id?: string;
28355
28369
  /**
28356
- * @description Free-trial seats only: which premium to enable for the trial (at most one). Ignored for paid seats. Defaults to none.
28370
+ * @description Optional. Which LinkedIn premium surface this connection should ask for: 'sales_navigator' or 'recruiter'. Omit it and the connection asks for every product, and LinkedIn activates whichever ones the account actually has. One LinkedIn account can hold only one of the two premium surfaces, and when both are asked for Sales Navigator takes precedence, so set this to 'recruiter' if the account holds both and you want the Recruiter surface. This applies per connection and is not remembered: state it on every connect and reconnect where Recruiter must win.
28357
28371
  * @enum {string}
28358
28372
  */
28359
- trial_premium?: "none" | "sales_navigator" | "recruiter";
28373
+ linkedin_premium?: "sales_navigator" | "recruiter";
28360
28374
  /** @description Managed proxy location hint as an ISO 3166-1 alpha-2 country code (e.g. US, DE). */
28361
28375
  country?: string;
28362
28376
  /** @description IPv4 address used to infer the managed proxy location. */
@@ -28508,7 +28522,7 @@ interface operations {
28508
28522
  "application/json": components["schemas"]["Error"];
28509
28523
  };
28510
28524
  };
28511
- /** @description Either LINKEDIN_FEATURE_NOT_SUBSCRIBED (the seat requested a premium product, Sales Navigator or Recruiter, that this LinkedIn account is not subscribed to; match the seat tier to the account's actual plan, or use a different seat), or ACCOUNT_RESTRICTED (LinkedIn has restricted this account; sign in to LinkedIn to see what it needs, resolve it there, then connect again). The code field distinguishes the two. */
28525
+ /** @description Either LINKEDIN_FEATURE_NOT_SUBSCRIBED (this LinkedIn account is not subscribed to a premium product the connection asked for, Sales Navigator or Recruiter; activate that subscription on LinkedIn and connect again, or set linkedin_premium to the premium the account actually holds), or ACCOUNT_RESTRICTED (LinkedIn has restricted this account; sign in to LinkedIn to see what it needs, resolve it there, then connect again). The code field distinguishes the two. */
28512
28526
  403: {
28513
28527
  headers: {
28514
28528
  [name: string]: unknown;
@@ -29975,11 +29989,6 @@ interface operations {
29975
29989
  description?: string;
29976
29990
  /** @description Present and true when the event carries LinkedIn-specific content. */
29977
29991
  linkedin_only?: boolean;
29978
- /**
29979
- * @description Required add-on tier. Present only on tier-gated events.
29980
- * @enum {string}
29981
- */
29982
- tier?: "recruiter" | "sales_nav";
29983
29992
  /**
29984
29993
  * @description Delivery timing. Omitted (equivalent to 'realtime') on every live-pushed event. 'no_longer_realtime' means no push exists for this event; 'not_realtime' means delivery is not guaranteed sub-second and may lag the underlying LinkedIn event, typically because it is detected by a poll rather than pushed, though a given event's own reference article may document an additional immediate path.
29985
29994
  * @enum {string}
@@ -31199,16 +31208,31 @@ declare class AuthResource {
31199
31208
  * account) rather than connecting a brand-new one; it is absent on a normal
31200
31209
  * connect.
31201
31210
  *
31202
- * Connection scope (which LinkedIn products are enabled: classic, company,
31203
- * a premium tier) is **seat-derived**: there is no products input on this
31204
- * body, and the recorded scope is readable back as `requested_products` on
31205
- * the account (`accounts.list()` / `accounts.get()`). A reconnect that
31206
- * would change scope must use `auth_method: "credentials"`, since a cookie
31207
- * replay cannot change scope and throws `CurviateError(code:
31208
- * "REAUTH_REQUIRED")` instead. A seat resolving to both individual-Premium
31209
- * tiers at once throws `CurviateError(code: "PREMIUM_CONFLICT")` (LinkedIn
31210
- * permits only one per profile). Pin a managed proxy with the optional
31211
- * `country`/`ip`, or supply `proxy` to override it entirely.
31211
+ * Connection scope (which LinkedIn products are enabled) is not something
31212
+ * you enumerate and it is NOT derived from the seat: the connect asks for
31213
+ * every product (classic, company, sales_navigator, recruiter) and LinkedIn
31214
+ * activates whichever ones the account actually holds. The recorded scope is
31215
+ * readable back as `requested_products` on the account
31216
+ * (`accounts.list()` / `accounts.get()`), and it is what was ASKED for, not
31217
+ * proof of attachment.
31218
+ *
31219
+ * `linkedin_premium` (`"sales_navigator"` | `"recruiter"`) is the one
31220
+ * optional narrowing. A LinkedIn account can hold only one of the two
31221
+ * premium surfaces, and when both are asked for Sales Navigator wins, so set
31222
+ * it to `"recruiter"` for an account that holds both and needs the Recruiter
31223
+ * surface. **It applies to this connection only and is never remembered**:
31224
+ * a later connect or reconnect that omits it widens the scope back to every
31225
+ * product, so state it on every call where Recruiter must win. There is no
31226
+ * account-level premium preference to set once.
31227
+ *
31228
+ * A reconnect that would change scope must use `auth_method: "credentials"`,
31229
+ * since a cookie replay cannot change scope and throws
31230
+ * `CurviateError(code: "REAUTH_REQUIRED")` instead. Asking for a premium the
31231
+ * LinkedIn account does not hold throws
31232
+ * `CurviateError(code: "LINKEDIN_FEATURE_NOT_SUBSCRIBED")` (403); the remedy
31233
+ * is to activate the subscription on LinkedIn or to point `linkedin_premium`
31234
+ * at the premium the account really has. Pin a managed proxy with the
31235
+ * optional `country`/`ip`, or supply `proxy` to override it entirely.
31212
31236
  */
31213
31237
  intent(body: AuthIntentBody): Promise<AuthIntentResult>;
31214
31238
  /**
@@ -32072,7 +32096,9 @@ declare class FeedResource {
32072
32096
  }
32073
32097
 
32074
32098
  /**
32075
- * Inboxes resource, 2 methods (Beta).
32099
+ * Inboxes resource.
32100
+ *
32101
+ * @beta Every operation in this namespace is beta.
32076
32102
  *
32077
32103
  * Account-scoped: the bound context injects `account_id` as the leading
32078
32104
  * `/v1/` path segment on every request (account-first grammar), never a
@@ -32130,6 +32156,10 @@ declare class InboxesResource {
32130
32156
  * const companyPage = (items ?? []).find((i) => i.kind === "company");
32131
32157
  * console.log(companyPage?.id, companyPage?.name, hint);
32132
32158
  * // companyPage?.id is what you pass to listChats(), e.g. "COMPANY_83734124_PRIMARY"
32159
+ *
32160
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32161
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32162
+ * or the request carries the `X-Curviate-Beta` header.
32133
32163
  */
32134
32164
  list(params?: InboxListQuery): Promise<InboxListPage>;
32135
32165
  /**
@@ -32160,6 +32190,10 @@ declare class InboxesResource {
32160
32190
  * or `"COMPANY_83734124_PRIMARY"`).
32161
32191
  * @param params - optional `limit` (1-25, default 20) and an opaque
32162
32192
  * `cursor` for pagination.
32193
+ *
32194
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32195
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32196
+ * or the request carries the `X-Curviate-Beta` header.
32163
32197
  */
32164
32198
  listChats(inboxId: string, params?: InboxChatListQuery): Promise<InboxChatListPage>;
32165
32199
  }
@@ -32260,7 +32294,25 @@ declare class NotificationsResource {
32260
32294
  }
32261
32295
 
32262
32296
  /**
32263
- * Sales Navigator resource: 12 methods (tier: sn).
32297
+ * Sales Navigator resource.
32298
+ *
32299
+ * @beta Every operation in this namespace is beta. None of it has been
32300
+ * exercised against a real LinkedIn Sales Navigator subscription yet, so
32301
+ * response shapes may still move. While an operation is beta-GATED it refuses
32302
+ * `BETA_NOT_ENABLED` (403) until a human enables beta for the tenant in
32303
+ * Settings, or the request carries the `X-Curviate-Beta` header. The beta
32304
+ * badge is a superset of the gate: a badged operation is not necessarily
32305
+ * gated, so read the code on a refusal rather than inferring it from the
32306
+ * badge.
32307
+ *
32308
+ * NO CURVIATE-SIDE ENTITLEMENT. There is no Sales Navigator product to buy
32309
+ * from Curviate and no tier on a seat: one ordinary paid seat entitles every
32310
+ * method here, and a tenant with no active seat covering the account refuses
32311
+ * `NO_ACTIVE_SEAT` (403) exactly as it does on any other namespace. What this
32312
+ * namespace does need is the LINKEDIN account's own Sales Navigator
32313
+ * subscription; an account whose LinkedIn lacks it refuses
32314
+ * `LINKEDIN_FEATURE_NOT_SUBSCRIBED` (403), and that remedy lives on LinkedIn,
32315
+ * not in Curviate billing.
32264
32316
  *
32265
32317
  * Account-scoped: the bound context injects `account_id` as the leading
32266
32318
  * `/v1/` path segment on every request (account-first grammar), never a
@@ -32322,50 +32374,85 @@ declare class SalesNavigatorResource {
32322
32374
  /**
32323
32375
  * Search LinkedIn members using the full Sales Navigator filter set.
32324
32376
  * `POST /v1/{account_id}/sales-navigator/search/people`
32325
- * Requires tier `sn`. Returns `TIER_NOT_ACTIVE` (403) when the seat lacks it.
32377
+ *
32378
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32379
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32380
+ * or the request carries the `X-Curviate-Beta` header.
32326
32381
  */
32327
32382
  searchPeople(body: SNSearchPeopleBody, query?: Partial<SNSearchPeopleQuery>): Promise<SNSearchPeopleResult>;
32328
32383
  /**
32329
32384
  * Search LinkedIn companies using the full Sales Navigator company filter set.
32330
32385
  * `POST /v1/{account_id}/sales-navigator/search/companies`
32386
+ *
32387
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32388
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32389
+ * or the request carries the `X-Curviate-Beta` header.
32331
32390
  */
32332
32391
  searchCompanies(body: SNSearchCompaniesBody, query?: Partial<SNSearchCompaniesQuery>): Promise<SNSearchCompaniesResult>;
32333
32392
  /**
32334
32393
  * Resolve human-readable terms to opaque Sales Navigator filter IDs.
32335
32394
  * `GET /v1/{account_id}/sales-navigator/search/parameters`
32395
+ *
32396
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32397
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32398
+ * or the request carries the `X-Curviate-Beta` header.
32336
32399
  */
32337
32400
  getParameters(query: SNGetParametersQuery): Promise<SNGetParametersResult>;
32338
32401
  /**
32339
32402
  * Start a new Sales Navigator chat. `attachments[]`, when supplied, carry
32340
32403
  * base64-encoded file bytes, always sent as JSON, never multipart.
32341
32404
  * `POST /v1/{account_id}/sales-navigator/chats`
32405
+ *
32406
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32407
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32408
+ * or the request carries the `X-Curviate-Beta` header.
32342
32409
  */
32343
32410
  startChat(body: SNStartChatBody): Promise<SNStartChatResult>;
32344
32411
  /**
32345
32412
  * Retrieve a LinkedIn profile with Sales Navigator enrichment.
32346
32413
  * `GET /v1/{account_id}/sales-navigator/profiles/{identifier}`
32414
+ *
32415
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32416
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32417
+ * or the request carries the `X-Curviate-Beta` header.
32347
32418
  */
32348
32419
  getProfile(identifier: string, query?: Partial<SNGetProfileQuery>): Promise<SNGetProfileResult>;
32349
32420
  /**
32350
32421
  * List the saved-account (company) lists on the operator's Sales Navigator seat.
32351
32422
  * `GET /v1/{account_id}/sales-navigator/account-lists`
32423
+ *
32424
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32425
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32426
+ * or the request carries the `X-Curviate-Beta` header.
32352
32427
  */
32353
32428
  accountLists(query?: Partial<SNAccountListsQuery>): Promise<SNAccountListsResult>;
32354
32429
  /**
32355
32430
  * List the saved-lead (member) lists on the operator's Sales Navigator seat.
32356
32431
  * `GET /v1/{account_id}/sales-navigator/lead-lists`
32432
+ *
32433
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32434
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32435
+ * or the request carries the `X-Curviate-Beta` header.
32357
32436
  */
32358
32437
  leadLists(query?: Partial<SNLeadListsQuery>): Promise<SNLeadListsResult>;
32359
32438
  /**
32360
32439
  * Browse the saved accounts (companies) in one account list. Pass optional
32361
32440
  * `persona` / `filter` / `sort_by` / `sort_order` filters in the body.
32362
32441
  * `POST /v1/{account_id}/sales-navigator/account-lists/{list_id}`
32442
+ *
32443
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32444
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32445
+ * or the request carries the `X-Curviate-Beta` header.
32363
32446
  */
32364
32447
  browseAccountList(listId: string, body?: SNBrowseAccountListBody, query?: Partial<SNBrowseAccountListQuery>): Promise<SNBrowseAccountListResult>;
32365
32448
  /**
32366
32449
  * Browse the saved leads (members) in one lead list. Pass optional
32367
32450
  * `spotlight` / `sort_by` / `sort_order` filters in the body.
32368
32451
  * `POST /v1/{account_id}/sales-navigator/lead-lists/{list_id}`
32452
+ *
32453
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32454
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32455
+ * or the request carries the `X-Curviate-Beta` header.
32369
32456
  */
32370
32457
  browseLeadList(listId: string, body?: SNBrowseLeadListBody, query?: Partial<SNBrowseLeadListQuery>): Promise<SNBrowseLeadListResult>;
32371
32458
  /**
@@ -32375,12 +32462,20 @@ declare class SalesNavigatorResource {
32375
32462
  *
32376
32463
  * No `saved` boolean is invented; a `2xx` response body is the success
32377
32464
  * signal (the substrate returns no success flag).
32465
+ *
32466
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32467
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32468
+ * or the request carries the `X-Curviate-Beta` header.
32378
32469
  */
32379
32470
  saveAccount(input: SNSaveAccountInput): Promise<SNSaveAccountResult>;
32380
32471
  /**
32381
32472
  * Save a Sales Navigator member into a lead list. Body is just `{user_id}`;
32382
32473
  * `account_id` lives in the path, not the body.
32383
32474
  * `POST /v1/{account_id}/sales-navigator/lead-lists/{list_id}/save`
32475
+ *
32476
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32477
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32478
+ * or the request carries the `X-Curviate-Beta` header.
32384
32479
  */
32385
32480
  saveLead(input: SNSaveLeadInput): Promise<SNSaveLeadResult>;
32386
32481
  /**
@@ -32388,12 +32483,33 @@ declare class SalesNavigatorResource {
32388
32483
  * `POST /v1/{account_id}/sales-navigator/search`
32389
32484
  * `url` is the only accepted body field. Response items are polymorphic,
32390
32485
  * each discriminated individually by its own `object`.
32486
+ *
32487
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32488
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32489
+ * or the request carries the `X-Curviate-Beta` header.
32391
32490
  */
32392
32491
  searchFromUrl(body: SNSearchFromUrlBody, query?: Partial<SNSearchFromUrlQuery>): Promise<SNSearchFromUrlResult>;
32393
32492
  }
32394
32493
 
32395
32494
  /**
32396
- * Recruiter resource: 23 methods (tier: recruiter), project-centric rebuild.
32495
+ * Recruiter resource, a project-centric rebuild.
32496
+ *
32497
+ * @beta Every operation in this namespace is beta. None of it has been
32498
+ * exercised against a real LinkedIn Recruiter subscription yet, so response
32499
+ * shapes may still move. While an operation is beta-GATED it refuses
32500
+ * `BETA_NOT_ENABLED` (403) until a human enables beta for the tenant in
32501
+ * Settings, or the request carries the `X-Curviate-Beta` header. The beta
32502
+ * badge is a superset of the gate: a badged operation is not necessarily
32503
+ * gated, so read the code on a refusal rather than inferring it from the
32504
+ * badge.
32505
+ *
32506
+ * NO CURVIATE-SIDE ENTITLEMENT. There is no Recruiter product to buy from
32507
+ * Curviate and no tier on a seat: one ordinary paid seat entitles every method
32508
+ * here, and a tenant with no active seat covering the account refuses
32509
+ * `NO_ACTIVE_SEAT` (403) exactly as it does on any other namespace. What this
32510
+ * namespace does need is the LINKEDIN account's own Recruiter subscription; an
32511
+ * account whose LinkedIn lacks it refuses `LINKEDIN_FEATURE_NOT_SUBSCRIBED`
32512
+ * (403), and that remedy lives on LinkedIn, not in Curviate billing.
32397
32513
  *
32398
32514
  * Account-scoped: the bound context injects `account_id` as the leading
32399
32515
  * `/v1/` path segment on every request (account-first grammar), never a
@@ -32472,23 +32588,39 @@ declare class RecruiterResource {
32472
32588
  * target's public identifier, or a member id. Request specific profile
32473
32589
  * sections via `with_sections` (repeatable query param).
32474
32590
  * `GET /v1/{account_id}/recruiter/profiles/{user_id}`
32591
+ *
32592
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32593
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32594
+ * or the request carries the `X-Curviate-Beta` header.
32475
32595
  */
32476
32596
  getProfile(identifier: string, params?: Partial<RecruiterGetProfileQuery>): Promise<RecruiterGetProfileResult>;
32477
32597
  /**
32478
32598
  * Start a Recruiter chat (InMail). JSON-only, `subject` and `signature`
32479
32599
  * are REQUIRED; optional attachments ride the body as base64-encoded
32480
32600
  * objects (no multipart). `POST /v1/{account_id}/recruiter/chats`
32601
+ *
32602
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32603
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32604
+ * or the request carries the `X-Curviate-Beta` header.
32481
32605
  */
32482
32606
  startChat(body: RecruiterStartChatBody): Promise<RecruiterStartChatResult>;
32483
32607
  /**
32484
32608
  * Search LinkedIn members using Recruiter filters. `limit`/`cursor` stay
32485
32609
  * TOP-LEVEL query params. `POST /v1/{account_id}/recruiter/search/people`
32610
+ *
32611
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32612
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32613
+ * or the request carries the `X-Curviate-Beta` header.
32486
32614
  */
32487
32615
  searchPeople(body: RecruiterSearchPeopleBody, params?: Partial<RecruiterSearchPeopleQuery>): Promise<RecruiterSearchPeopleResult>;
32488
32616
  /**
32489
32617
  * Resolve human-readable terms to opaque Recruiter filter ids. POST (was
32490
32618
  * GET): the body is a `source`-discriminated oneOf, `APPLICANTS`/`PIPELINE`
32491
32619
  * require `project_id`. `POST /v1/{account_id}/recruiter/search/parameters`
32620
+ *
32621
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32622
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32623
+ * or the request carries the `X-Curviate-Beta` header.
32492
32624
  */
32493
32625
  searchParameters(body: RecruiterSearchParametersBody, params?: Partial<RecruiterSearchParametersQuery>): Promise<RecruiterSearchParametersResult>;
32494
32626
  /**
@@ -32496,6 +32628,10 @@ declare class RecruiterResource {
32496
32628
  * `RECRUITER_SEARCH` talent-pool channel) is REQUIRED. `limit`/`cursor` stay
32497
32629
  * TOP-LEVEL query params.
32498
32630
  * `POST /v1/{account_id}/recruiter/projects/{project_id}/talent-pool/search`
32631
+ *
32632
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32633
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32634
+ * or the request carries the `X-Curviate-Beta` header.
32499
32635
  */
32500
32636
  searchTalentPool(projectId: string, body: RecruiterSearchTalentPoolBody, params?: Partial<RecruiterSearchTalentPoolQuery>): Promise<RecruiterSearchTalentPoolResult>;
32501
32637
  /**
@@ -32503,22 +32639,38 @@ declare class RecruiterResource {
32503
32639
  * nothing else in the body. The response is a 3-way oneOf (people-search,
32504
32640
  * job-applicant list, or pipeline-candidate list) keyed by the URL kind.
32505
32641
  * `POST /v1/{account_id}/recruiter/search`
32642
+ *
32643
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32644
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32645
+ * or the request carries the `X-Curviate-Beta` header.
32506
32646
  */
32507
32647
  searchFromUrl(body: RecruiterSearchFromUrlBody, params?: Partial<RecruiterSearchFromUrlQuery>): Promise<RecruiterSearchFromUrlResult>;
32508
32648
  /**
32509
32649
  * List Recruiter hiring projects visible to the account.
32510
32650
  * `GET /v1/{account_id}/recruiter/projects`
32651
+ *
32652
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32653
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32654
+ * or the request carries the `X-Curviate-Beta` header.
32511
32655
  */
32512
32656
  listProjects(params?: Partial<RecruiterListProjectsQuery>): Promise<RecruiterListProjectsResult>;
32513
32657
  /**
32514
32658
  * Get a single Recruiter hiring project (owner, metadata, talent_pool,
32515
32659
  * pipeline). `GET /v1/{account_id}/recruiter/projects/{project_id}`
32660
+ *
32661
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32662
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32663
+ * or the request carries the `X-Curviate-Beta` header.
32516
32664
  */
32517
32665
  getProject(projectId: string): Promise<RecruiterGetProjectResult>;
32518
32666
  /**
32519
32667
  * Edit a Recruiter project's config: all fields optional; omitted fields
32520
32668
  * are left unchanged. Returns a thin acknowledgement only.
32521
32669
  * `PATCH /v1/{account_id}/recruiter/projects/{project_id}`
32670
+ *
32671
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32672
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32673
+ * or the request carries the `X-Curviate-Beta` header.
32522
32674
  */
32523
32675
  updateProject(projectId: string, body: RecruiterUpdateProjectBody): Promise<RecruiterUpdateProjectResult>;
32524
32676
  /**
@@ -32526,35 +32678,59 @@ declare class RecruiterResource {
32526
32678
  * an all-optional filter set, no state mutates). `limit`/`cursor` stay
32527
32679
  * TOP-LEVEL query params.
32528
32680
  * `POST /v1/{account_id}/recruiter/projects/{project_id}/pipeline`
32681
+ *
32682
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32683
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32684
+ * or the request carries the `X-Curviate-Beta` header.
32529
32685
  */
32530
32686
  listPipeline(projectId: string, body?: RecruiterListPipelineBody, params?: Partial<RecruiterListPipelineQuery>): Promise<RecruiterListPipelineResult>;
32531
32687
  /**
32532
32688
  * Get the single job posting attached to a Recruiter project (the surface
32533
32689
  * returns one posting, not a list; a project with no attached job 404s).
32534
32690
  * `GET /v1/{account_id}/recruiter/projects/{project_id}/jobs`
32691
+ *
32692
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32693
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32694
+ * or the request carries the `X-Curviate-Beta` header.
32535
32695
  */
32536
32696
  getProjectJob(projectId: string): Promise<RecruiterProjectJob>;
32537
32697
  /**
32538
32698
  * Create a job-posting DRAFT attached to an EXISTING project, `project_name`
32539
32699
  * is not accepted (the project comes from the path). Never publishes, never
32540
32700
  * spends money. `POST /v1/{account_id}/recruiter/projects/{project_id}/jobs`
32701
+ *
32702
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32703
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32704
+ * or the request carries the `X-Curviate-Beta` header.
32541
32705
  */
32542
32706
  createProjectJob(projectId: string, body: RecruiterCreateProjectJobBody): Promise<RecruiterCreateProjectJobResult>;
32543
32707
  /**
32544
32708
  * Get pricing to publish a project's job posting; price a publish before
32545
32709
  * committing any money.
32546
32710
  * `GET /v1/{account_id}/recruiter/projects/{project_id}/jobs/{job_id}/budget`
32711
+ *
32712
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32713
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32714
+ * or the request carries the `X-Curviate-Beta` header.
32547
32715
  */
32548
32716
  getProjectJobBudget(projectId: string, jobId: string): Promise<RecruiterProjectJobBudget>;
32549
32717
  /**
32550
32718
  * Create a job-posting DRAFT together with a brand-new hiring project,
32551
32719
  * `project_name` is REQUIRED; `description` must be >= 200 characters. Never
32552
32720
  * publishes, never spends money. `POST /v1/{account_id}/recruiter/jobs`
32721
+ *
32722
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32723
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32724
+ * or the request carries the `X-Curviate-Beta` header.
32553
32725
  */
32554
32726
  createJob(body: RecruiterCreateJobBody): Promise<RecruiterCreateJobResult>;
32555
32727
  /**
32556
32728
  * List Recruiter job postings. `limit`/`cursor` stay TOP-LEVEL query params.
32557
32729
  * `GET /v1/{account_id}/recruiter/jobs`
32730
+ *
32731
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32732
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32733
+ * or the request carries the `X-Curviate-Beta` header.
32558
32734
  */
32559
32735
  listJobs(params?: Partial<RecruiterListJobsQuery>): Promise<RecruiterListJobsResult>;
32560
32736
  /**
@@ -32567,6 +32743,10 @@ declare class RecruiterResource {
32567
32743
  * client-side; the wire request always carries the numeric id. Throws
32568
32744
  * `CurviateError({ code: 'INVALID_REQUEST' })` synchronously if neither
32569
32745
  * form can be recognized.
32746
+ *
32747
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32748
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32749
+ * or the request carries the `X-Curviate-Beta` header.
32570
32750
  */
32571
32751
  getJob(jobIdOrUrl: string): Promise<RecruiterJobDetail>;
32572
32752
  /**
@@ -32574,6 +32754,10 @@ declare class RecruiterResource {
32574
32754
  * change. MONEY WARNING: editing an already-published (LISTED) posting
32575
32755
  * mutates a live, money-spending listing.
32576
32756
  * `PATCH /v1/{account_id}/recruiter/projects/{project_id}/jobs/{job_id}`
32757
+ *
32758
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32759
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32760
+ * or the request carries the `X-Curviate-Beta` header.
32577
32761
  */
32578
32762
  updateProjectJob(projectId: string, jobId: string, body: RecruiterUpdateProjectJobBody): Promise<RecruiterUpdateProjectJobResult>;
32579
32763
  /**
@@ -32583,6 +32767,10 @@ declare class RecruiterResource {
32583
32767
  * the connected account's LinkedIn payment method; supplying `budget` IS the
32584
32768
  * explicit opt-in).
32585
32769
  * `POST /v1/{account_id}/recruiter/projects/{project_id}/jobs/{job_id}/publish`
32770
+ *
32771
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32772
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32773
+ * or the request carries the `X-Curviate-Beta` header.
32586
32774
  */
32587
32775
  publishJob(projectId: string, jobId: string, body: RecruiterPublishJobBody): Promise<RecruiterPublishJobResult>;
32588
32776
  /**
@@ -32590,12 +32778,20 @@ declare class RecruiterResource {
32590
32778
  * (bodyless). Closing an already-published (LISTED) posting cannot be
32591
32779
  * undone; there is no re-open operation.
32592
32780
  * `POST /v1/{account_id}/recruiter/projects/{project_id}/jobs/{job_id}/close`
32781
+ *
32782
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32783
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32784
+ * or the request carries the `X-Curviate-Beta` header.
32593
32785
  */
32594
32786
  closeJob(projectId: string, jobId: string): Promise<RecruiterCloseJobResult>;
32595
32787
  /**
32596
32788
  * Save a candidate (or user profile) to a project's pipeline at the given
32597
32789
  * stage, the sole surviving pipeline write.
32598
32790
  * `POST /v1/{account_id}/recruiter/projects/{project_id}/pipeline/candidate/save`
32791
+ *
32792
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32793
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32794
+ * or the request carries the `X-Curviate-Beta` header.
32599
32795
  */
32600
32796
  saveCandidate(projectId: string, body: RecruiterSaveCandidateBody): Promise<RecruiterSaveCandidateResult>;
32601
32797
  /**
@@ -32603,17 +32799,29 @@ declare class RecruiterResource {
32603
32799
  * filters, no state mutates). `channel_id` (a `JOB_POSTING` talent-pool
32604
32800
  * channel) is REQUIRED. `limit`/`cursor` stay TOP-LEVEL query params.
32605
32801
  * `POST /v1/{account_id}/recruiter/projects/{project_id}/talent-pool/applicants`
32802
+ *
32803
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32804
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32805
+ * or the request carries the `X-Curviate-Beta` header.
32606
32806
  */
32607
32807
  listApplicants(projectId: string, body: RecruiterListApplicantsBody, params?: Partial<RecruiterListApplicantsQuery>): Promise<RecruiterListApplicantsResult>;
32608
32808
  /**
32609
32809
  * Get full detail for one talent-pool applicant (profile guaranteed full,
32610
32810
  * includes PII). `GET /v1/{account_id}/recruiter/projects/{project_id}/talent-pool/applicants/{applicant_id}`
32811
+ *
32812
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32813
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32814
+ * or the request carries the `X-Curviate-Beta` header.
32611
32815
  */
32612
32816
  getApplicant(projectId: string, applicantId: string): Promise<RecruiterGetApplicantResult>;
32613
32817
  /**
32614
32818
  * Download a talent-pool applicant's résumé as raw binary.
32615
32819
  * `GET /v1/{account_id}/recruiter/projects/{project_id}/talent-pool/applicants/{applicant_id}/resume`
32616
32820
  * Returns `ArrayBuffer`; the SDK does not cache or store it.
32821
+ *
32822
+ * @beta Beta operation. See the namespace note above: while beta-gated it
32823
+ * refuses `BETA_NOT_ENABLED` (403) until a human enables beta in Settings,
32824
+ * or the request carries the `X-Curviate-Beta` header.
32617
32825
  */
32618
32826
  downloadResume(projectId: string, applicantId: string): Promise<ArrayBuffer>;
32619
32827
  }
@@ -32879,6 +33087,11 @@ declare class CompaniesResource {
32879
33087
  * never stored. Beta: single-page listing and termination are verified;
32880
33088
  * deep pagination (many pages / large cursor round-trips) is provisional
32881
33089
  * until validated against a busier inbox.
33090
+ *
33091
+ * @beta Beta operation. While beta-gated it refuses `BETA_NOT_ENABLED`
33092
+ * (403) until a human enables beta in Settings, or the request carries the
33093
+ * `X-Curviate-Beta` header. Sibling methods on this namespace are stable;
33094
+ * the badge is per operation.
32882
33095
  */
32883
33096
  chats(identifier: string, params?: CompanyChatListQuery): Promise<CompanyChatListPage>;
32884
33097
  /**
@@ -32911,6 +33124,11 @@ declare class CompaniesResource {
32911
33124
  * and message content), a `topic` card, or `unread`-only; the three are
32912
33125
  * mutually exclusive and enforced server-side. The connected account must
32913
33126
  * administer the page. Beta: see `chats()`.
33127
+ *
33128
+ * @beta Beta operation. While beta-gated it refuses `BETA_NOT_ENABLED`
33129
+ * (403) until a human enables beta in Settings, or the request carries the
33130
+ * `X-Curviate-Beta` header. Sibling methods on this namespace are stable;
33131
+ * the badge is per operation.
32914
33132
  */
32915
33133
  searchChats(identifier: string, params?: CompanyChatSearchQuery): Promise<CompanyChatSearchPage>;
32916
33134
  /**
@@ -33135,13 +33353,41 @@ declare class Curviate {
33135
33353
  * This mirrors the server's error taxonomy (the customer-observable subset).
33136
33354
  * The string literals are copied here intentionally; the SDK has no dependency
33137
33355
  * on any private package. Internal-only codes that never reach a caller (e.g.
33138
- * `BANNED_ENV_PREFIX`, `ADMIN_BYPASS`, protected-account and substrate-internal
33139
- * codes) are deliberately excluded.
33356
+ * `BANNED_ENV_PREFIX`, protected-account and substrate-internal codes) are
33357
+ * deliberately excluded.
33358
+ *
33359
+ * The test for "does a caller ever see it" is the DECODE PATH, not intuition:
33360
+ * a code returned by any `/v1` route, the `/v1` catch-all, or a shared handler
33361
+ * one of them calls reaches this transport, and anything missing from this
33362
+ * array is erased to `INTERNAL` on the way out. Twenty-one codes were in that
33363
+ * position and are now carried (see the block at the end of the array).
33364
+ * `ADMIN_BYPASS` was even cited here as an example of an unreachable code
33365
+ * while being constructed at nine sites inside the versioned billing
33366
+ * endpoints, which is exactly the mistake the decode-path test avoids.
33367
+ *
33368
+ * What remains excluded are codes with no request to answer at all: the
33369
+ * boot-time environment refusal (`BANNED_ENV_PREFIX`, raised before the
33370
+ * process serves anything) and the browser-approval exchange the CLI's own
33371
+ * `setup` command consumes directly, which is not on the documented REST
33372
+ * surface and no SDK method reaches.
33373
+ *
33374
+ * The taxonomy tracks what deployments can actually emit, which is not the same
33375
+ * as what the newest one emits. A code the API has stopped returning is removed
33376
+ * eventually, because a dead code in the union tells a caller to branch on
33377
+ * something that cannot arrive, but not in the release that stops returning
33378
+ * it, because a client is pointed at a deployment, not at a changelog. Removing
33379
+ * a code the caller's deployment still sends is worse than carrying a dead one:
33380
+ * the refusal arrives as `INTERNAL` and reads as a server fault.
33140
33381
  *
33141
- * The taxonomy is additive-only: new codes may be appended, existing ones are
33142
- * never removed or renamed.
33382
+ * So a retirement is two steps. First `@deprecated`, kept exported, with the
33383
+ * replacement named. Then removed, in the first release after every deployment
33384
+ * carries the new contract. `TIER_NOT_ACTIVE` and `PREMIUM_CONFLICT` are at
33385
+ * step one as of 0.30.0.
33386
+ *
33387
+ * A code the API NEVER emitted is a different case and goes immediately, since
33388
+ * no deployment can be sending it: `RATE_LIMITED` went that way in 0.30.0.
33143
33389
  */
33144
- declare const ERROR_CODES: readonly ["UNAUTHORIZED", "INVALID_REQUEST", "UNSUPPORTED_MEDIA_TYPE", "PAYLOAD_TOO_LARGE", "ACCOUNT_NOT_FOUND", "ACCOUNT_RESTRICTED", "ACCOUNT_ALREADY_LINKED", "RESOURCE_NOT_FOUND", "NOT_STORED", "RESOURCE_ACCESS_RESTRICTED", "FILTER_CANDIDATES_REQUIRED", "TIER_NOT_ACTIVE", "LINKEDIN_FEATURE_NOT_SUBSCRIBED", "RATE_LIMIT_ACCOUNT", "RATE_LIMIT_TENANT", "PLATFORM_RATE_LIMIT", "RATE_LIMITED", "BUDGET_EXHAUSTED", "PLATFORM_ERROR", "PLATFORM_NOT_IMPLEMENTED", "LINKEDIN_OPERATION_NOT_SUPPORTED", "CHECKPOINT_NOT_FOUND", "CHECKPOINT_EXPIRED", "CHECKPOINT_INVALID_CODE", "CHECKPOINT_MAX_ATTEMPTS", "CHECKPOINT_ALREADY_RESOLVED", "CHECKPOINT_UNSUPPORTED", "CONNECTION_IN_PROGRESS", "PREMIUM_CONFLICT", "REAUTH_REQUIRED", "LINKEDIN_AUTH_FAILED", "LINKEDIN_SESSION_EVICTED", "LINKEDIN_RATE_LIMITED", "LINKEDIN_COOKIE_INVALID", "LINKEDIN_SERVICE_UNAVAILABLE", "MESSAGE_WINDOW_EXPIRED", "RECIPIENT_UNREACHABLE", "CONNECTION_REQUEST_CONFLICT", "PAYMENT_REQUIRED", "PAYMENT_FAILED", "SUBSCRIPTION_BUSY", "SUBSCRIPTION_NOT_FOUND", "SEAT_NOT_FOUND", "SEAT_CANCELLED", "INTERNAL"];
33390
+ declare const ERROR_CODES: readonly ["UNAUTHORIZED", "INVALID_REQUEST", "UNSUPPORTED_MEDIA_TYPE", "PAYLOAD_TOO_LARGE", "ACCOUNT_NOT_FOUND", "ACCOUNT_RESTRICTED", "ACCOUNT_ALREADY_LINKED", "RESOURCE_NOT_FOUND", "NOT_STORED", "RESOURCE_ACCESS_RESTRICTED", "FILTER_CANDIDATES_REQUIRED", "NO_ACTIVE_SEAT", "LINKEDIN_FEATURE_NOT_SUBSCRIBED", "BETA_NOT_ENABLED", "TIER_NOT_ACTIVE", "RATE_LIMIT_ACCOUNT", "RATE_LIMIT_TENANT", "PLATFORM_RATE_LIMIT", "BUDGET_EXHAUSTED", "PLATFORM_ERROR", "PLATFORM_NOT_IMPLEMENTED", "LINKEDIN_OPERATION_NOT_SUPPORTED", "CHECKPOINT_NOT_FOUND", "CHECKPOINT_EXPIRED", "CHECKPOINT_INVALID_CODE", "CHECKPOINT_MAX_ATTEMPTS", "CHECKPOINT_ALREADY_RESOLVED", "CHECKPOINT_UNSUPPORTED", "CONNECTION_IN_PROGRESS", "PREMIUM_CONFLICT", "REAUTH_REQUIRED", "LINKEDIN_AUTH_FAILED", "LINKEDIN_SESSION_EVICTED", "LINKEDIN_RATE_LIMITED", "LINKEDIN_COOKIE_INVALID", "LINKEDIN_SERVICE_UNAVAILABLE", "MESSAGE_WINDOW_EXPIRED", "RECIPIENT_UNREACHABLE", "CONNECTION_REQUEST_CONFLICT", "PAYMENT_REQUIRED", "PAYMENT_FAILED", "SUBSCRIPTION_BUSY", "SUBSCRIPTION_NOT_FOUND", "SEAT_NOT_FOUND", "SEAT_CANCELLED", "NOT_FOUND", "REACTION_NOT_FOUND", "SUBSTRATE_LINK_FAILED", "SUBSTRATE_CAP_REACHED", "BILLING_CHECKOUT_FAILED", "BILLING_PORTAL_UNAVAILABLE", "ACCOUNT_DISPUTED", "ACCOUNT_LINKING_DISABLED", "PERIOD_LOCKED", "SEAT_NOT_EMPTY", "SEAT_PROVISIONAL", "SUBSCRIPTION_ALREADY_EXISTS", "ALREADY_CANCELLED", "CANCELLATION_ALREADY_EFFECTIVE", "INVALID_CANCELLATION_SOURCE", "TRIAL_EXPIRED", "TRIAL_SEAT_LIMIT", "TRIAL_ACTIVE_SEAT_LIMIT", "TRIAL_IDENTITY_ALREADY_USED", "TRIAL_IDENTITY_UNRESOLVED", "ADMIN_BYPASS", "INTERNAL"];
33145
33391
  /**
33146
33392
  * The complete set of error codes observable by API callers.
33147
33393
  *
@@ -33149,24 +33395,6 @@ declare const ERROR_CODES: readonly ["UNAUTHORIZED", "INVALID_REQUEST", "UNSUPPO
33149
33395
  * `switch (error.code)` without fear of unknown codes.
33150
33396
  */
33151
33397
  type ErrorCode = (typeof ERROR_CODES)[number];
33152
- /**
33153
- * The tiers a caller can be asked to upgrade to, surfaced on `TIER_NOT_ACTIVE`.
33154
- * `sn` and `sales_nav` are both emitted by the API (internal flag key vs.
33155
- * product-facing label).
33156
- *
33157
- * Single source of truth, mirroring {@link ERROR_CODES}: both the
33158
- * {@link RequiredTier} type and the runtime {@link KNOWN_REQUIRED_TIERS}
33159
- * membership set are derived from this one array, so the type a caller
33160
- * narrows on and the set the transport validates a wire value against can
33161
- * never drift apart.
33162
- */
33163
- declare const REQUIRED_TIERS: readonly ["core", "sn", "sales_nav", "recruiter"];
33164
- /**
33165
- * The product tier a caller needs, surfaced on `TIER_NOT_ACTIVE` so an agent
33166
- * can route an upgrade without parsing the message. `sn` and `sales_nav` are
33167
- * both emitted by the API (internal flag key vs. product-facing label).
33168
- */
33169
- type RequiredTier = (typeof REQUIRED_TIERS)[number];
33170
33398
  /** Structured retry guidance attached to retryable errors. */
33171
33399
  interface RetryHint {
33172
33400
  kind: "delay" | "backoff" | "never";
@@ -33207,8 +33435,6 @@ interface CurviateErrorInit {
33207
33435
  retryHint?: RetryHint | null;
33208
33436
  userFixable: boolean;
33209
33437
  retryLikelyToSucceed: boolean;
33210
- /** Present on `TIER_NOT_ACTIVE` only. */
33211
- requiredTier?: RequiredTier;
33212
33438
  /** Milliseconds to wait before retry, parsed from the `Retry-After` response header. */
33213
33439
  retryAfterMs?: number;
33214
33440
  /**
@@ -33281,7 +33507,6 @@ interface CurviateErrorJSON {
33281
33507
  retryHint: RetryHint | null;
33282
33508
  userFixable: boolean;
33283
33509
  retryLikelyToSucceed: boolean;
33284
- requiredTier?: RequiredTier;
33285
33510
  retryAfterMs?: number;
33286
33511
  budgetRow?: string;
33287
33512
  retryAfterSeconds?: number;
@@ -33309,7 +33534,6 @@ declare class CurviateError extends Error {
33309
33534
  readonly retryHint: RetryHint | null;
33310
33535
  readonly userFixable: boolean;
33311
33536
  readonly retryLikelyToSucceed: boolean;
33312
- readonly requiredTier: RequiredTier | undefined;
33313
33537
  readonly retryAfterMs: number | undefined;
33314
33538
  /** The budget row this response names. See {@link CurviateErrorInit.budgetRow}. */
33315
33539
  readonly budgetRow: string | undefined;
@@ -33619,4 +33843,4 @@ interface ConstructEventOptions {
33619
33843
  */
33620
33844
  declare function constructEvent(rawBody: string | Buffer, signatureHeader: string, secret: string, opts?: ConstructEventOptions): Promise<CurviateEvent>;
33621
33845
 
33622
- export { type AccountListPage, type AccountListParams, type AccountPayload, type AccountScopedNamespaces, type ConnectionPayload, type ConstructEventOptions, Curviate, type CurviateConfig, CurviateError, type CurviateErrorInit, type CurviateErrorJSON, type CurviateEvent, type CurviateEventEnvelope, ERROR_CODES, type ErrorCode, type EventPayloadBase, type MessagePayload, type RequiredTier, type ResolvedConfig, type ResourceNamespaces, type RetryHint, type SafetyHint, type SafetyReason, WebhookSignatureError, type components, constructEvent, isCurviateError, type operations, type paths };
33846
+ export { type AccountListPage, type AccountListParams, type AccountPayload, type AccountScopedNamespaces, type ConnectionPayload, type ConstructEventOptions, Curviate, type CurviateConfig, CurviateError, type CurviateErrorInit, type CurviateErrorJSON, type CurviateEvent, type CurviateEventEnvelope, ERROR_CODES, type ErrorCode, type EventPayloadBase, type MessagePayload, type ResolvedConfig, type ResourceNamespaces, type RetryHint, type SafetyHint, type SafetyReason, WebhookSignatureError, type components, constructEvent, isCurviateError, type operations, type paths };