@ophelio/sdk 0.3.1 → 0.4.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.mts CHANGED
@@ -27,10 +27,15 @@ interface IdempotentRequestOptions extends RequestOptions {
27
27
  */
28
28
  idempotencyKey?: string;
29
29
  }
30
+ /**
31
+ * A query parameter value. An array is multi-valued: it goes on the wire
32
+ * comma-separated (`?status=pending,failed`), the form the API parses.
33
+ */
34
+ type QueryValue = string | string[] | undefined;
30
35
  interface RequestParams {
31
36
  method: 'GET' | 'POST' | 'PATCH' | 'DELETE';
32
37
  path: string;
33
- query?: Record<string, string | undefined>;
38
+ query?: Record<string, QueryValue>;
34
39
  body?: unknown;
35
40
  idempotencyKey?: string;
36
41
  /**
@@ -446,6 +451,38 @@ interface paths {
446
451
  patch: operations["PlanEntitlementsController_update"];
447
452
  trace?: never;
448
453
  };
454
+ "/api/v1/plan-entitlements/{id}/availabilities": {
455
+ parameters: {
456
+ query?: never;
457
+ header?: never;
458
+ path?: never;
459
+ cookie?: never;
460
+ };
461
+ get: operations["PlanEntitlementsController_listAvailabilities"];
462
+ put?: never;
463
+ post: operations["PlanEntitlementsController_createAvailability"];
464
+ delete?: never;
465
+ options?: never;
466
+ head?: never;
467
+ patch?: never;
468
+ trace?: never;
469
+ };
470
+ "/api/v1/plan-entitlement-availabilities/{id}": {
471
+ parameters: {
472
+ query?: never;
473
+ header?: never;
474
+ path?: never;
475
+ cookie?: never;
476
+ };
477
+ get: operations["PlanEntitlementAvailabilitiesController_get"];
478
+ put?: never;
479
+ post?: never;
480
+ delete: operations["PlanEntitlementAvailabilitiesController_delete"];
481
+ options?: never;
482
+ head?: never;
483
+ patch: operations["PlanEntitlementAvailabilitiesController_update"];
484
+ trace?: never;
485
+ };
449
486
  "/api/v1/plan-pricing-group-mappings/{id}": {
450
487
  parameters: {
451
488
  query?: never;
@@ -622,6 +659,38 @@ interface paths {
622
659
  patch?: never;
623
660
  trace?: never;
624
661
  };
662
+ "/api/v1/target-codes": {
663
+ parameters: {
664
+ query?: never;
665
+ header?: never;
666
+ path?: never;
667
+ cookie?: never;
668
+ };
669
+ get: operations["TargetCodesController_list"];
670
+ put?: never;
671
+ post: operations["TargetCodesController_create"];
672
+ delete?: never;
673
+ options?: never;
674
+ head?: never;
675
+ patch?: never;
676
+ trace?: never;
677
+ };
678
+ "/api/v1/target-codes/{id}": {
679
+ parameters: {
680
+ query?: never;
681
+ header?: never;
682
+ path?: never;
683
+ cookie?: never;
684
+ };
685
+ get: operations["TargetCodesController_get"];
686
+ put?: never;
687
+ post?: never;
688
+ delete: operations["TargetCodesController_delete"];
689
+ options?: never;
690
+ head?: never;
691
+ patch: operations["TargetCodesController_update"];
692
+ trace?: never;
693
+ };
625
694
  "/api/v1/member-roles": {
626
695
  parameters: {
627
696
  query?: never;
@@ -1038,38 +1107,6 @@ interface paths {
1038
1107
  patch?: never;
1039
1108
  trace?: never;
1040
1109
  };
1041
- "/api/v1/target-codes": {
1042
- parameters: {
1043
- query?: never;
1044
- header?: never;
1045
- path?: never;
1046
- cookie?: never;
1047
- };
1048
- get: operations["TargetCodesController_list"];
1049
- put?: never;
1050
- post: operations["TargetCodesController_create"];
1051
- delete?: never;
1052
- options?: never;
1053
- head?: never;
1054
- patch?: never;
1055
- trace?: never;
1056
- };
1057
- "/api/v1/target-codes/{id}": {
1058
- parameters: {
1059
- query?: never;
1060
- header?: never;
1061
- path?: never;
1062
- cookie?: never;
1063
- };
1064
- get: operations["TargetCodesController_get"];
1065
- put?: never;
1066
- post?: never;
1067
- delete: operations["TargetCodesController_delete"];
1068
- options?: never;
1069
- head?: never;
1070
- patch: operations["TargetCodesController_update"];
1071
- trace?: never;
1072
- };
1073
1110
  "/api/inngest": {
1074
1111
  parameters: {
1075
1112
  query?: never;
@@ -1136,6 +1173,7 @@ interface components {
1136
1173
  timezone?: string | null;
1137
1174
  default_currency?: string | null; /** @enum {string|null} */
1138
1175
  display_locale?: "de-DE" | "en-GB" | "en-US" | "es-ES" | "fr-FR" | "it-IT" | "nl-NL" | null;
1176
+ require_target_context?: boolean | null;
1139
1177
  };
1140
1178
  CreateOrganizationDto: {
1141
1179
  slug: string;
@@ -1274,12 +1312,27 @@ interface components {
1274
1312
  create_time: string; /** Format: date-time */
1275
1313
  update_time: string;
1276
1314
  };
1315
+ PlanEntitlementAvailability: {
1316
+ /** @description Calendar the row is restricted to. Null means the row places no date restriction. */calendar_id: string | null;
1317
+ /**
1318
+ * @description Registered target codes the row is restricted to. An empty array means anywhere.
1319
+ * @example [
1320
+ * "venue_a"
1321
+ * ]
1322
+ */
1323
+ targets: string[];
1324
+ id: string;
1325
+ plan_entitlement_id: string; /** Format: date-time */
1326
+ create_time: string; /** Format: date-time */
1327
+ update_time: string;
1328
+ };
1277
1329
  PlanEntitlementDefinition: {
1278
1330
  code: string; /** @enum {string} */
1279
1331
  type: "discount" | "early_access" | "free_entry" | "guest_pass";
1280
1332
  display_name: string;
1281
1333
  };
1282
1334
  PlanEntitlement: {
1335
+ /** @description When and where the entitlement applies. Rows are alternatives: the entitlement matches if any one of them does. An empty array means it is unrestricted. */availabilities: components["schemas"]["PlanEntitlementAvailability"][];
1283
1336
  id: string;
1284
1337
  plan_id: string;
1285
1338
  entitlement_id: string;
@@ -1383,12 +1436,58 @@ interface components {
1383
1436
  early_access_days: number;
1384
1437
  active_during_grace: boolean;
1385
1438
  };
1439
+ ListPlanEntitlementAvailabilitiesResponse: {
1440
+ /**
1441
+ * @description Opaque token for the next page; empty string on the last page.
1442
+ * @example
1443
+ */
1444
+ next_page_token: string;
1445
+ /**
1446
+ * @description Total number of results across all pages.
1447
+ * @example 42
1448
+ */
1449
+ total_size: number;
1450
+ availabilities: components["schemas"]["PlanEntitlementAvailability"][];
1451
+ };
1452
+ CreatePlanEntitlementAvailabilityDto: {
1453
+ /**
1454
+ * @description Registered target codes the row is restricted to. Omit or send an empty
1455
+ * array for anywhere. Every code must already exist in the project's target
1456
+ * code vocabulary.
1457
+ * @example [
1458
+ * "venue_a"
1459
+ * ]
1460
+ */
1461
+ targets?: string[];
1462
+ /**
1463
+ * Format: uuid
1464
+ * @description Calendar the row is restricted to. Omit or send null for a row that places
1465
+ * no date restriction.
1466
+ */
1467
+ calendar_id?: string | null;
1468
+ };
1469
+ UpdatePlanEntitlementAvailabilityDto: {
1470
+ /**
1471
+ * @description Registered target codes the row is restricted to. Omit or send an empty
1472
+ * array for anywhere. Every code must already exist in the project's target
1473
+ * code vocabulary.
1474
+ * @example [
1475
+ * "venue_a"
1476
+ * ]
1477
+ */
1478
+ targets?: string[];
1479
+ /**
1480
+ * Format: uuid
1481
+ * @description Calendar the row is restricted to. Omit or send null for a row that places
1482
+ * no date restriction.
1483
+ */
1484
+ calendar_id?: string | null;
1485
+ };
1386
1486
  Entitlement: {
1387
1487
  id: string;
1388
1488
  code: string;
1389
1489
  display_name: string; /** @enum {string} */
1390
1490
  type: "discount" | "early_access" | "free_entry" | "guest_pass";
1391
- target: string | null;
1392
1491
  description: string | null; /** Format: date-time */
1393
1492
  create_time: string; /** Format: date-time */
1394
1493
  update_time: string;
@@ -1411,6 +1510,7 @@ interface components {
1411
1510
  entitlement_code: string;
1412
1511
  members: string[];
1413
1512
  used_time?: string;
1513
+ target?: string;
1414
1514
  context: {
1415
1515
  [key: string]: unknown;
1416
1516
  };
@@ -1421,6 +1521,7 @@ interface components {
1421
1521
  member_id: string;
1422
1522
  plan_entitlement_id: string; /** Format: date-time */
1423
1523
  used_time: string;
1524
+ target: string | null;
1424
1525
  context: {
1425
1526
  [key: string]: unknown;
1426
1527
  } | null;
@@ -1434,15 +1535,56 @@ interface components {
1434
1535
  code: string;
1435
1536
  display_name: string; /** @enum {string} */
1436
1537
  type: "discount" | "early_access" | "free_entry" | "guest_pass";
1437
- target: string;
1438
1538
  description: string;
1439
1539
  };
1440
1540
  UpdateEntitlementDto: {
1441
1541
  code: string;
1442
1542
  display_name: string;
1443
- target: string;
1444
1543
  description: string;
1445
1544
  };
1545
+ EntitlementValidityWindow: {
1546
+ /**
1547
+ * @description First calendar day the rule covers, as `YYYY-MM-DD` in the project timezone. Null means the window is open-ended at the start.
1548
+ * @example 2026-01-01
1549
+ */
1550
+ date_from: string | null;
1551
+ /**
1552
+ * @description Last calendar day the rule covers, inclusive, as `YYYY-MM-DD` in the project timezone. Null means the window is open-ended at the end.
1553
+ * @example 2026-03-31
1554
+ */
1555
+ date_until: string | null;
1556
+ /**
1557
+ * @description Weekdays the rule covers, in ISO-8601 numbering: 1 = Monday … 7 = Sunday. An empty array means every day.
1558
+ * @example [
1559
+ * 1,
1560
+ * 2,
1561
+ * 3,
1562
+ * 4
1563
+ * ]
1564
+ */
1565
+ days_of_week: number[];
1566
+ };
1567
+ MemberEntitlement: {
1568
+ /** @description When the entitlement is valid, taken from the availability rules that matched. Only matched rules are listed. Omitted entirely when nothing restricts the entitlement by date. */valid_on?: components["schemas"]["EntitlementValidityWindow"][];
1569
+ /**
1570
+ * @description Where the entitlement is valid, taken from the availability rows that matched. Only matched rows are listed. Omitted entirely when nothing restricts the entitlement by target.
1571
+ * @example [
1572
+ * "coffee_shop",
1573
+ * "venue_a"
1574
+ * ]
1575
+ */
1576
+ valid_at?: string[];
1577
+ code: string; /** @enum {string} */
1578
+ type: "discount" | "early_access" | "free_entry" | "guest_pass";
1579
+ display_name: string;
1580
+ plan_entitlement_id: string;
1581
+ discount_percentage: number | null;
1582
+ quota_limit: number | null; /** @enum {string} */
1583
+ quota_period: "day" | "month" | "week" | "year";
1584
+ requires_member_present: boolean;
1585
+ early_access_days: number | null;
1586
+ active_during_grace: boolean;
1587
+ };
1446
1588
  SyncMember: {
1447
1589
  member_id: string;
1448
1590
  card_id: string | null;
@@ -1451,6 +1593,7 @@ interface components {
1451
1593
  pricing_group_code: string | null; /** @enum {string} */
1452
1594
  membership_status: "active" | "grace_period" | "past_due"; /** Format: date-time */
1453
1595
  end_time: string | null;
1596
+ entitlements: components["schemas"]["MemberEntitlement"][];
1454
1597
  };
1455
1598
  MemberSyncResponse: {
1456
1599
  members: components["schemas"]["SyncMember"][]; /** @example 2026-06-11T12:00:00.000Z */
@@ -1481,19 +1624,6 @@ interface components {
1481
1624
  role: components["schemas"]["MemberRoleSummary"] | null;
1482
1625
  membership: components["schemas"]["MemberMembershipSummary"] | null;
1483
1626
  };
1484
- MemberEntitlement: {
1485
- code: string; /** @enum {string} */
1486
- type: "discount" | "early_access" | "free_entry" | "guest_pass";
1487
- target: string | null;
1488
- display_name: string;
1489
- plan_entitlement_id: string;
1490
- discount_percentage: number | null;
1491
- quota_limit: number | null; /** @enum {string} */
1492
- quota_period: "day" | "month" | "week" | "year";
1493
- requires_member_present: boolean;
1494
- early_access_days: number | null;
1495
- active_during_grace: boolean;
1496
- };
1497
1627
  ListMemberEntitlementsResponse: {
1498
1628
  entitlements: components["schemas"]["MemberEntitlement"][];
1499
1629
  };
@@ -1513,6 +1643,7 @@ interface components {
1513
1643
  role_code: string;
1514
1644
  };
1515
1645
  AdmitResult: {
1646
+ /** @description Whether the entitlements were filtered by a target context the request supplied. False means no target context was given and they are unfiltered by target. */target_context_applied: boolean;
1516
1647
  actions: ({
1517
1648
  /** @enum {string} */type: "renew_at_desk"; /** Format: uuid */
1518
1649
  membership_id: string;
@@ -1529,6 +1660,45 @@ interface components {
1529
1660
  pricing_group: string | null;
1530
1661
  entitlements: components["schemas"]["MemberEntitlement"][];
1531
1662
  };
1663
+ TargetCode: {
1664
+ /**
1665
+ * @description Machine identifier a gate sends. Lowercase letters, numbers and single underscores; immutable once created, and matched exactly, never normalised.
1666
+ * @example venue_a
1667
+ */
1668
+ code: string; /** @example Venue A */
1669
+ display_name: string;
1670
+ /**
1671
+ * @description How many plan entitlements restrict availability to this target. Populated only when `view=full`.
1672
+ * @example 3
1673
+ */
1674
+ plan_entitlement_count?: number;
1675
+ id: string;
1676
+ description: string | null; /** Format: date-time */
1677
+ create_time: string; /** Format: date-time */
1678
+ update_time: string;
1679
+ };
1680
+ ListTargetCodesResponse: {
1681
+ /**
1682
+ * @description Opaque token for the next page; empty string on the last page.
1683
+ * @example
1684
+ */
1685
+ next_page_token: string;
1686
+ /**
1687
+ * @description Total number of results across all pages.
1688
+ * @example 42
1689
+ */
1690
+ total_size: number;
1691
+ target_codes: components["schemas"]["TargetCode"][];
1692
+ };
1693
+ CreateTargetCodeDto: {
1694
+ /** @example venue_a */code: string;
1695
+ display_name: string;
1696
+ description?: string | null;
1697
+ };
1698
+ UpdateTargetCodeDto: {
1699
+ display_name?: string;
1700
+ description?: string | null;
1701
+ };
1532
1702
  MemberRole: {
1533
1703
  id: string;
1534
1704
  code: string;
@@ -1627,6 +1797,11 @@ interface components {
1627
1797
  description: string;
1628
1798
  };
1629
1799
  Calendar: {
1800
+ /**
1801
+ * @description How many plan entitlements restrict availability to this calendar. Populated only when `view=full`.
1802
+ * @example 3
1803
+ */
1804
+ plan_entitlement_count?: number;
1630
1805
  id: string; /** @description Stable identifier for the calendar, unique within a project. */
1631
1806
  code: string; /** @description Human-readable name, e.g. "Peak 2026". */
1632
1807
  display_name: string;
@@ -1987,40 +2162,6 @@ interface components {
1987
2162
  total_size: number;
1988
2163
  memberships: components["schemas"]["Membership"][];
1989
2164
  };
1990
- TargetCode: {
1991
- /**
1992
- * @description Machine identifier a gate sends. Lowercase letters, numbers and single underscores; immutable once created, and matched exactly, never normalised.
1993
- * @example venue_a
1994
- */
1995
- code: string; /** @example Venue A */
1996
- display_name: string;
1997
- id: string;
1998
- description: string | null; /** Format: date-time */
1999
- create_time: string; /** Format: date-time */
2000
- update_time: string;
2001
- };
2002
- ListTargetCodesResponse: {
2003
- /**
2004
- * @description Opaque token for the next page; empty string on the last page.
2005
- * @example
2006
- */
2007
- next_page_token: string;
2008
- /**
2009
- * @description Total number of results across all pages.
2010
- * @example 42
2011
- */
2012
- total_size: number;
2013
- target_codes: components["schemas"]["TargetCode"][];
2014
- };
2015
- CreateTargetCodeDto: {
2016
- /** @example venue_a */code: string;
2017
- display_name: string;
2018
- description?: string | null;
2019
- };
2020
- UpdateTargetCodeDto: {
2021
- display_name?: string;
2022
- description?: string | null;
2023
- };
2024
2165
  };
2025
2166
  responses: never;
2026
2167
  parameters: never;
@@ -3121,9 +3262,12 @@ interface operations {
3121
3262
  };
3122
3263
  };
3123
3264
  };
3124
- PlanPricingGroupMappingsController_delete: {
3265
+ PlanEntitlementsController_listAvailabilities: {
3125
3266
  parameters: {
3126
- query?: never;
3267
+ query?: {
3268
+ page_size?: number;
3269
+ page_token?: string;
3270
+ };
3127
3271
  header?: never;
3128
3272
  path?: never;
3129
3273
  cookie?: never;
@@ -3135,7 +3279,7 @@ interface operations {
3135
3279
  [name: string]: unknown;
3136
3280
  };
3137
3281
  content: {
3138
- "application/json": Record<string, never>;
3282
+ "application/json": components["schemas"]["ListPlanEntitlementAvailabilitiesResponse"];
3139
3283
  };
3140
3284
  };
3141
3285
  404: {
@@ -3148,33 +3292,192 @@ interface operations {
3148
3292
  };
3149
3293
  };
3150
3294
  };
3151
- EntitlementsController_list: {
3295
+ PlanEntitlementsController_createAvailability: {
3152
3296
  parameters: {
3153
3297
  query?: never;
3154
3298
  header?: never;
3155
3299
  path?: never;
3156
3300
  cookie?: never;
3157
3301
  };
3158
- requestBody?: never;
3302
+ requestBody: {
3303
+ content: {
3304
+ "application/json": components["schemas"]["CreatePlanEntitlementAvailabilityDto"];
3305
+ };
3306
+ };
3159
3307
  responses: {
3160
- 200: {
3308
+ 201: {
3161
3309
  headers: {
3162
3310
  [name: string]: unknown;
3163
3311
  };
3164
3312
  content: {
3165
- "application/json": components["schemas"]["ListEntitlementsResponse"];
3313
+ "application/json": components["schemas"]["PlanEntitlementAvailability"];
3166
3314
  };
3167
3315
  };
3168
- };
3169
- };
3170
- EntitlementsController_create: {
3171
- parameters: {
3172
- query?: never;
3173
- header?: never;
3174
- path?: never;
3175
- cookie?: never;
3176
- };
3177
- requestBody: {
3316
+ 400: {
3317
+ headers: {
3318
+ [name: string]: unknown;
3319
+ };
3320
+ content: {
3321
+ "application/json": components["schemas"]["ErrorResponse"];
3322
+ };
3323
+ };
3324
+ 404: {
3325
+ headers: {
3326
+ [name: string]: unknown;
3327
+ };
3328
+ content: {
3329
+ "application/json": components["schemas"]["ErrorResponse"];
3330
+ };
3331
+ };
3332
+ };
3333
+ };
3334
+ PlanEntitlementAvailabilitiesController_get: {
3335
+ parameters: {
3336
+ query?: never;
3337
+ header?: never;
3338
+ path?: never;
3339
+ cookie?: never;
3340
+ };
3341
+ requestBody?: never;
3342
+ responses: {
3343
+ 200: {
3344
+ headers: {
3345
+ [name: string]: unknown;
3346
+ };
3347
+ content: {
3348
+ "application/json": components["schemas"]["PlanEntitlementAvailability"];
3349
+ };
3350
+ };
3351
+ 404: {
3352
+ headers: {
3353
+ [name: string]: unknown;
3354
+ };
3355
+ content: {
3356
+ "application/json": components["schemas"]["ErrorResponse"];
3357
+ };
3358
+ };
3359
+ };
3360
+ };
3361
+ PlanEntitlementAvailabilitiesController_delete: {
3362
+ parameters: {
3363
+ query?: never;
3364
+ header?: never;
3365
+ path?: never;
3366
+ cookie?: never;
3367
+ };
3368
+ requestBody?: never;
3369
+ responses: {
3370
+ 200: {
3371
+ headers: {
3372
+ [name: string]: unknown;
3373
+ };
3374
+ content: {
3375
+ "application/json": Record<string, never>;
3376
+ };
3377
+ };
3378
+ 404: {
3379
+ headers: {
3380
+ [name: string]: unknown;
3381
+ };
3382
+ content: {
3383
+ "application/json": components["schemas"]["ErrorResponse"];
3384
+ };
3385
+ };
3386
+ };
3387
+ };
3388
+ PlanEntitlementAvailabilitiesController_update: {
3389
+ parameters: {
3390
+ query?: never;
3391
+ header?: never;
3392
+ path?: never;
3393
+ cookie?: never;
3394
+ };
3395
+ requestBody: {
3396
+ content: {
3397
+ "application/json": components["schemas"]["UpdatePlanEntitlementAvailabilityDto"];
3398
+ };
3399
+ };
3400
+ responses: {
3401
+ 200: {
3402
+ headers: {
3403
+ [name: string]: unknown;
3404
+ };
3405
+ content: {
3406
+ "application/json": components["schemas"]["PlanEntitlementAvailability"];
3407
+ };
3408
+ };
3409
+ 400: {
3410
+ headers: {
3411
+ [name: string]: unknown;
3412
+ };
3413
+ content: {
3414
+ "application/json": components["schemas"]["ErrorResponse"];
3415
+ };
3416
+ };
3417
+ 404: {
3418
+ headers: {
3419
+ [name: string]: unknown;
3420
+ };
3421
+ content: {
3422
+ "application/json": components["schemas"]["ErrorResponse"];
3423
+ };
3424
+ };
3425
+ };
3426
+ };
3427
+ PlanPricingGroupMappingsController_delete: {
3428
+ parameters: {
3429
+ query?: never;
3430
+ header?: never;
3431
+ path?: never;
3432
+ cookie?: never;
3433
+ };
3434
+ requestBody?: never;
3435
+ responses: {
3436
+ 200: {
3437
+ headers: {
3438
+ [name: string]: unknown;
3439
+ };
3440
+ content: {
3441
+ "application/json": Record<string, never>;
3442
+ };
3443
+ };
3444
+ 404: {
3445
+ headers: {
3446
+ [name: string]: unknown;
3447
+ };
3448
+ content: {
3449
+ "application/json": components["schemas"]["ErrorResponse"];
3450
+ };
3451
+ };
3452
+ };
3453
+ };
3454
+ EntitlementsController_list: {
3455
+ parameters: {
3456
+ query?: never;
3457
+ header?: never;
3458
+ path?: never;
3459
+ cookie?: never;
3460
+ };
3461
+ requestBody?: never;
3462
+ responses: {
3463
+ 200: {
3464
+ headers: {
3465
+ [name: string]: unknown;
3466
+ };
3467
+ content: {
3468
+ "application/json": components["schemas"]["ListEntitlementsResponse"];
3469
+ };
3470
+ };
3471
+ };
3472
+ };
3473
+ EntitlementsController_create: {
3474
+ parameters: {
3475
+ query?: never;
3476
+ header?: never;
3477
+ path?: never;
3478
+ cookie?: never;
3479
+ };
3480
+ requestBody: {
3178
3481
  content: {
3179
3482
  "application/json": components["schemas"]["CreateEntitlementDto"];
3180
3483
  };
@@ -3422,23 +3725,219 @@ interface operations {
3422
3725
  };
3423
3726
  requestBody?: never;
3424
3727
  responses: {
3425
- 204: {
3426
- headers: {
3427
- [name: string]: unknown;
3428
- };
3429
- content?: never;
3430
- };
3431
- 404: {
3728
+ 204: {
3729
+ headers: {
3730
+ [name: string]: unknown;
3731
+ };
3732
+ content?: never;
3733
+ };
3734
+ 404: {
3735
+ headers: {
3736
+ [name: string]: unknown;
3737
+ };
3738
+ content: {
3739
+ "application/json": components["schemas"]["ErrorResponse"];
3740
+ };
3741
+ };
3742
+ };
3743
+ };
3744
+ MembersController_update: {
3745
+ parameters: {
3746
+ query?: never;
3747
+ header?: never;
3748
+ path?: never;
3749
+ cookie?: never;
3750
+ };
3751
+ requestBody: {
3752
+ content: {
3753
+ "application/json": components["schemas"]["UpdateMemberDto"];
3754
+ };
3755
+ };
3756
+ responses: {
3757
+ 200: {
3758
+ headers: {
3759
+ [name: string]: unknown;
3760
+ };
3761
+ content: {
3762
+ "application/json": components["schemas"]["Member"];
3763
+ };
3764
+ };
3765
+ 404: {
3766
+ headers: {
3767
+ [name: string]: unknown;
3768
+ };
3769
+ content: {
3770
+ "application/json": components["schemas"]["ErrorResponse"];
3771
+ };
3772
+ };
3773
+ };
3774
+ };
3775
+ MembersController_listEntitlements: {
3776
+ parameters: {
3777
+ query?: {
3778
+ /** @description Registered target codes the request is being made at, sent comma-separated (`?targets=venue_a,coffee_shop`). Codes are matched exactly; an unregistered code is refused. Omit for no target context; send it empty to name no targets. */targets?: string[];
3779
+ type?: "discount" | "early_access" | "free_entry" | "guest_pass";
3780
+ };
3781
+ header?: never;
3782
+ path?: never;
3783
+ cookie?: never;
3784
+ };
3785
+ requestBody?: never;
3786
+ responses: {
3787
+ 200: {
3788
+ headers: {
3789
+ [name: string]: unknown;
3790
+ };
3791
+ content: {
3792
+ "application/json": components["schemas"]["ListMemberEntitlementsResponse"];
3793
+ };
3794
+ };
3795
+ 400: {
3796
+ headers: {
3797
+ [name: string]: unknown;
3798
+ };
3799
+ content: {
3800
+ "application/json": components["schemas"]["ErrorResponse"];
3801
+ };
3802
+ };
3803
+ 404: {
3804
+ headers: {
3805
+ [name: string]: unknown;
3806
+ };
3807
+ content: {
3808
+ "application/json": components["schemas"]["ErrorResponse"];
3809
+ };
3810
+ };
3811
+ };
3812
+ };
3813
+ MembersController_setPrimary: {
3814
+ parameters: {
3815
+ query?: never;
3816
+ header?: never;
3817
+ path?: never;
3818
+ cookie?: never;
3819
+ };
3820
+ requestBody?: never;
3821
+ responses: {
3822
+ 200: {
3823
+ headers: {
3824
+ [name: string]: unknown;
3825
+ };
3826
+ content: {
3827
+ "application/json": components["schemas"]["Member"];
3828
+ };
3829
+ };
3830
+ 404: {
3831
+ headers: {
3832
+ [name: string]: unknown;
3833
+ };
3834
+ content: {
3835
+ "application/json": components["schemas"]["ErrorResponse"];
3836
+ };
3837
+ };
3838
+ 409: {
3839
+ headers: {
3840
+ [name: string]: unknown;
3841
+ };
3842
+ content: {
3843
+ "application/json": components["schemas"]["ErrorResponse"];
3844
+ };
3845
+ };
3846
+ };
3847
+ };
3848
+ MembersController_reissueCard: {
3849
+ parameters: {
3850
+ query?: never;
3851
+ header?: never;
3852
+ path?: never;
3853
+ cookie?: never;
3854
+ };
3855
+ requestBody: {
3856
+ content: {
3857
+ "application/json": components["schemas"]["ReissueCardDto"];
3858
+ };
3859
+ };
3860
+ responses: {
3861
+ 200: {
3862
+ headers: {
3863
+ [name: string]: unknown;
3864
+ };
3865
+ content: {
3866
+ "application/json": components["schemas"]["Member"];
3867
+ };
3868
+ };
3869
+ 404: {
3870
+ headers: {
3871
+ [name: string]: unknown;
3872
+ };
3873
+ content: {
3874
+ "application/json": components["schemas"]["ErrorResponse"];
3875
+ };
3876
+ };
3877
+ };
3878
+ };
3879
+ AdmitController_check: {
3880
+ parameters: {
3881
+ query: {
3882
+ /** @description Registered target codes the request is being made at, sent comma-separated (`?targets=venue_a,coffee_shop`). Codes are matched exactly; an unregistered code is refused. Omit for no target context; send it empty to name no targets. */targets?: string[];
3883
+ card: string;
3884
+ };
3885
+ header?: never;
3886
+ path?: never;
3887
+ cookie?: never;
3888
+ };
3889
+ requestBody?: never;
3890
+ responses: {
3891
+ 200: {
3892
+ headers: {
3893
+ [name: string]: unknown;
3894
+ };
3895
+ content: {
3896
+ "application/json": components["schemas"]["AdmitResult"];
3897
+ };
3898
+ };
3899
+ 400: {
3900
+ headers: {
3901
+ [name: string]: unknown;
3902
+ };
3903
+ content: {
3904
+ "application/json": components["schemas"]["ErrorResponse"];
3905
+ };
3906
+ };
3907
+ 404: {
3908
+ headers: {
3909
+ [name: string]: unknown;
3910
+ };
3911
+ content: {
3912
+ "application/json": components["schemas"]["ErrorResponse"];
3913
+ };
3914
+ };
3915
+ };
3916
+ };
3917
+ TargetCodesController_list: {
3918
+ parameters: {
3919
+ query?: {
3920
+ page_size?: number;
3921
+ page_token?: string; /** @description Response detail level; `full` populates `plan_entitlement_count`. */
3922
+ view?: "basic" | "full";
3923
+ };
3924
+ header?: never;
3925
+ path?: never;
3926
+ cookie?: never;
3927
+ };
3928
+ requestBody?: never;
3929
+ responses: {
3930
+ 200: {
3432
3931
  headers: {
3433
3932
  [name: string]: unknown;
3434
3933
  };
3435
3934
  content: {
3436
- "application/json": components["schemas"]["ErrorResponse"];
3935
+ "application/json": components["schemas"]["ListTargetCodesResponse"];
3437
3936
  };
3438
3937
  };
3439
3938
  };
3440
3939
  };
3441
- MembersController_update: {
3940
+ TargetCodesController_create: {
3442
3941
  parameters: {
3443
3942
  query?: never;
3444
3943
  header?: never;
@@ -3447,19 +3946,27 @@ interface operations {
3447
3946
  };
3448
3947
  requestBody: {
3449
3948
  content: {
3450
- "application/json": components["schemas"]["UpdateMemberDto"];
3949
+ "application/json": components["schemas"]["CreateTargetCodeDto"];
3451
3950
  };
3452
3951
  };
3453
3952
  responses: {
3454
- 200: {
3953
+ 201: {
3455
3954
  headers: {
3456
3955
  [name: string]: unknown;
3457
3956
  };
3458
3957
  content: {
3459
- "application/json": components["schemas"]["Member"];
3958
+ "application/json": components["schemas"]["TargetCode"];
3460
3959
  };
3461
3960
  };
3462
- 404: {
3961
+ 400: {
3962
+ headers: {
3963
+ [name: string]: unknown;
3964
+ };
3965
+ content: {
3966
+ "application/json": components["schemas"]["ErrorResponse"];
3967
+ };
3968
+ };
3969
+ 409: {
3463
3970
  headers: {
3464
3971
  [name: string]: unknown;
3465
3972
  };
@@ -3469,10 +3976,10 @@ interface operations {
3469
3976
  };
3470
3977
  };
3471
3978
  };
3472
- MembersController_listEntitlements: {
3979
+ TargetCodesController_get: {
3473
3980
  parameters: {
3474
3981
  query?: {
3475
- type?: "discount" | "early_access" | "free_entry" | "guest_pass";
3982
+ /** @description Response detail level; `full` populates `plan_entitlement_count`. */view?: "basic" | "full";
3476
3983
  };
3477
3984
  header?: never;
3478
3985
  path?: never;
@@ -3485,7 +3992,7 @@ interface operations {
3485
3992
  [name: string]: unknown;
3486
3993
  };
3487
3994
  content: {
3488
- "application/json": components["schemas"]["ListMemberEntitlementsResponse"];
3995
+ "application/json": components["schemas"]["TargetCode"];
3489
3996
  };
3490
3997
  };
3491
3998
  404: {
@@ -3498,7 +4005,7 @@ interface operations {
3498
4005
  };
3499
4006
  };
3500
4007
  };
3501
- MembersController_setPrimary: {
4008
+ TargetCodesController_delete: {
3502
4009
  parameters: {
3503
4010
  query?: never;
3504
4011
  header?: never;
@@ -3512,7 +4019,7 @@ interface operations {
3512
4019
  [name: string]: unknown;
3513
4020
  };
3514
4021
  content: {
3515
- "application/json": components["schemas"]["Member"];
4022
+ "application/json": Record<string, never>;
3516
4023
  };
3517
4024
  };
3518
4025
  404: {
@@ -3533,7 +4040,7 @@ interface operations {
3533
4040
  };
3534
4041
  };
3535
4042
  };
3536
- MembersController_reissueCard: {
4043
+ TargetCodesController_update: {
3537
4044
  parameters: {
3538
4045
  query?: never;
3539
4046
  header?: never;
@@ -3542,7 +4049,7 @@ interface operations {
3542
4049
  };
3543
4050
  requestBody: {
3544
4051
  content: {
3545
- "application/json": components["schemas"]["ReissueCardDto"];
4052
+ "application/json": components["schemas"]["UpdateTargetCodeDto"];
3546
4053
  };
3547
4054
  };
3548
4055
  responses: {
@@ -3551,10 +4058,10 @@ interface operations {
3551
4058
  [name: string]: unknown;
3552
4059
  };
3553
4060
  content: {
3554
- "application/json": components["schemas"]["Member"];
4061
+ "application/json": components["schemas"]["TargetCode"];
3555
4062
  };
3556
4063
  };
3557
- 404: {
4064
+ 400: {
3558
4065
  headers: {
3559
4066
  [name: string]: unknown;
3560
4067
  };
@@ -3562,27 +4069,6 @@ interface operations {
3562
4069
  "application/json": components["schemas"]["ErrorResponse"];
3563
4070
  };
3564
4071
  };
3565
- };
3566
- };
3567
- AdmitController_check: {
3568
- parameters: {
3569
- query: {
3570
- card: string;
3571
- };
3572
- header?: never;
3573
- path?: never;
3574
- cookie?: never;
3575
- };
3576
- requestBody?: never;
3577
- responses: {
3578
- 200: {
3579
- headers: {
3580
- [name: string]: unknown;
3581
- };
3582
- content: {
3583
- "application/json": components["schemas"]["AdmitResult"];
3584
- };
3585
- };
3586
4072
  404: {
3587
4073
  headers: {
3588
4074
  [name: string]: unknown;
@@ -4008,7 +4494,8 @@ interface operations {
4008
4494
  parameters: {
4009
4495
  query?: {
4010
4496
  page_size?: number;
4011
- page_token?: string;
4497
+ page_token?: string; /** @description Response detail level; `full` populates `plan_entitlement_count`. */
4498
+ view?: "basic" | "full";
4012
4499
  };
4013
4500
  header?: never;
4014
4501
  path?: never;
@@ -4059,7 +4546,9 @@ interface operations {
4059
4546
  };
4060
4547
  CalendarsController_get: {
4061
4548
  parameters: {
4062
- query?: never;
4549
+ query?: {
4550
+ /** @description Response detail level; `full` populates `plan_entitlement_count`. */view?: "basic" | "full";
4551
+ };
4063
4552
  header?: never;
4064
4553
  path?: never;
4065
4554
  cookie?: never;
@@ -4988,168 +5477,6 @@ interface operations {
4988
5477
  };
4989
5478
  };
4990
5479
  };
4991
- TargetCodesController_list: {
4992
- parameters: {
4993
- query?: {
4994
- page_size?: number;
4995
- page_token?: string;
4996
- };
4997
- header?: never;
4998
- path?: never;
4999
- cookie?: never;
5000
- };
5001
- requestBody?: never;
5002
- responses: {
5003
- 200: {
5004
- headers: {
5005
- [name: string]: unknown;
5006
- };
5007
- content: {
5008
- "application/json": components["schemas"]["ListTargetCodesResponse"];
5009
- };
5010
- };
5011
- };
5012
- };
5013
- TargetCodesController_create: {
5014
- parameters: {
5015
- query?: never;
5016
- header?: never;
5017
- path?: never;
5018
- cookie?: never;
5019
- };
5020
- requestBody: {
5021
- content: {
5022
- "application/json": components["schemas"]["CreateTargetCodeDto"];
5023
- };
5024
- };
5025
- responses: {
5026
- 201: {
5027
- headers: {
5028
- [name: string]: unknown;
5029
- };
5030
- content: {
5031
- "application/json": components["schemas"]["TargetCode"];
5032
- };
5033
- };
5034
- 400: {
5035
- headers: {
5036
- [name: string]: unknown;
5037
- };
5038
- content: {
5039
- "application/json": components["schemas"]["ErrorResponse"];
5040
- };
5041
- };
5042
- 409: {
5043
- headers: {
5044
- [name: string]: unknown;
5045
- };
5046
- content: {
5047
- "application/json": components["schemas"]["ErrorResponse"];
5048
- };
5049
- };
5050
- };
5051
- };
5052
- TargetCodesController_get: {
5053
- parameters: {
5054
- query?: never;
5055
- header?: never;
5056
- path?: never;
5057
- cookie?: never;
5058
- };
5059
- requestBody?: never;
5060
- responses: {
5061
- 200: {
5062
- headers: {
5063
- [name: string]: unknown;
5064
- };
5065
- content: {
5066
- "application/json": components["schemas"]["TargetCode"];
5067
- };
5068
- };
5069
- 404: {
5070
- headers: {
5071
- [name: string]: unknown;
5072
- };
5073
- content: {
5074
- "application/json": components["schemas"]["ErrorResponse"];
5075
- };
5076
- };
5077
- };
5078
- };
5079
- TargetCodesController_delete: {
5080
- parameters: {
5081
- query?: never;
5082
- header?: never;
5083
- path?: never;
5084
- cookie?: never;
5085
- };
5086
- requestBody?: never;
5087
- responses: {
5088
- 200: {
5089
- headers: {
5090
- [name: string]: unknown;
5091
- };
5092
- content: {
5093
- "application/json": Record<string, never>;
5094
- };
5095
- };
5096
- 404: {
5097
- headers: {
5098
- [name: string]: unknown;
5099
- };
5100
- content: {
5101
- "application/json": components["schemas"]["ErrorResponse"];
5102
- };
5103
- };
5104
- 409: {
5105
- headers: {
5106
- [name: string]: unknown;
5107
- };
5108
- content: {
5109
- "application/json": components["schemas"]["ErrorResponse"];
5110
- };
5111
- };
5112
- };
5113
- };
5114
- TargetCodesController_update: {
5115
- parameters: {
5116
- query?: never;
5117
- header?: never;
5118
- path?: never;
5119
- cookie?: never;
5120
- };
5121
- requestBody: {
5122
- content: {
5123
- "application/json": components["schemas"]["UpdateTargetCodeDto"];
5124
- };
5125
- };
5126
- responses: {
5127
- 200: {
5128
- headers: {
5129
- [name: string]: unknown;
5130
- };
5131
- content: {
5132
- "application/json": components["schemas"]["TargetCode"];
5133
- };
5134
- };
5135
- 400: {
5136
- headers: {
5137
- [name: string]: unknown;
5138
- };
5139
- content: {
5140
- "application/json": components["schemas"]["ErrorResponse"];
5141
- };
5142
- };
5143
- 404: {
5144
- headers: {
5145
- [name: string]: unknown;
5146
- };
5147
- content: {
5148
- "application/json": components["schemas"]["ErrorResponse"];
5149
- };
5150
- };
5151
- };
5152
- };
5153
5480
  InngestController_handle_get: {
5154
5481
  parameters: {
5155
5482
  query?: never;
@@ -5297,6 +5624,7 @@ type Member = Schemas['Member'];
5297
5624
  type SyncMember = Schemas['SyncMember'];
5298
5625
  type MemberEntitlement = Schemas['MemberEntitlement'];
5299
5626
  type PlanEntitlement = Schemas['PlanEntitlement'];
5627
+ type PlanEntitlementAvailability = Schemas['PlanEntitlementAvailability'];
5300
5628
  type Transaction = Schemas['Transaction'];
5301
5629
  type EntitlementUsage = Schemas['EntitlementUsage'];
5302
5630
  type AdmitResult = Schemas['AdmitResult'];
@@ -5318,6 +5646,8 @@ type PlanChangeResult = Schemas['PlanChangeResponseDto'];
5318
5646
  type MemberSyncResponse = Schemas['MemberSyncResponse'];
5319
5647
  type RedeemEntitlementResponse = Schemas['RedeemEntitlementResponseDto'];
5320
5648
  type CustomerView = 'basic' | 'full';
5649
+ type CalendarView = 'basic' | 'full';
5650
+ type TargetCodeView = 'basic' | 'full';
5321
5651
  interface PageParams {
5322
5652
  /** Rows per page. Server default 50; capped at 250. */
5323
5653
  page_size?: number;
@@ -5363,6 +5693,8 @@ type UpdateEntitlementParams = Schemas['UpdateEntitlementDto'];
5363
5693
  type CreatePlanLinkParams = Schemas['CreatePlanLinkDto'];
5364
5694
  type CreatePlanEntitlementParams = Schemas['CreatePlanEntitlementDto'];
5365
5695
  type UpdatePlanEntitlementParams = Schemas['UpdatePlanEntitlementDto'];
5696
+ type CreatePlanEntitlementAvailabilityParams = Schemas['CreatePlanEntitlementAvailabilityDto'];
5697
+ type UpdatePlanEntitlementAvailabilityParams = Schemas['UpdatePlanEntitlementAvailabilityDto'];
5366
5698
  type CreatePlanPricingGroupMappingParams = Schemas['CreatePlanPricingGroupMappingDto'];
5367
5699
  type CreateBillingOptionSalesChannelParams = Schemas['CreateBillingOptionSalesChannelDto'];
5368
5700
  type CreateWebhookSubscriptionParams = Schemas['CreateWebhookSubscriptionDto'];
@@ -5379,9 +5711,25 @@ declare class APIResource {
5379
5711
  //#endregion
5380
5712
  //#region src/resources/admit.d.ts
5381
5713
  declare class AdmitResource extends APIResource {
5382
- /** Gate admission check: `GET /admit?card=<cardId>`. */
5714
+ /**
5715
+ * Gate admission check: `GET /admit?card=<cardId>`.
5716
+ *
5717
+ * `targets` names the venue, zone, shop or gate the request is being made
5718
+ * at, and is the context the entitlements are judged in — a benefit
5719
+ * restricted to somewhere else drops out of `entitlements`. Three states,
5720
+ * and they are answered differently: omit it and every target restriction
5721
+ * is treated as satisfied; pass `[]` and only benefits valid anywhere
5722
+ * survive; pass codes and a benefit needs one of them. Read
5723
+ * `target_context_applied` on the result to tell the first apart from the
5724
+ * other two.
5725
+ *
5726
+ * Codes are matched exactly, so send them back verbatim from
5727
+ * `targetCodes.list()` — an unregistered or miscased code is refused with
5728
+ * a 400 rather than quietly ignored.
5729
+ */
5383
5730
  check(params: {
5384
5731
  card: string;
5732
+ targets?: string[];
5385
5733
  }, options?: RequestOptions): Promise<AdmitResult>;
5386
5734
  }
5387
5735
  //#endregion
@@ -5403,7 +5751,7 @@ declare class BillingOptionsResource extends APIResource {
5403
5751
  //#endregion
5404
5752
  //#region src/resources/calendar-rules.d.ts
5405
5753
  /**
5406
- * A calendar rule is one row of a calendar's date vocabulary. Conditions AND
5754
+ * A calendar rule is one row of a calendar's set of dates. Conditions AND
5407
5755
  * within a rule and rules OR across a calendar, so "weekends in August" is a
5408
5756
  * single rule rather than two.
5409
5757
  *
@@ -5419,14 +5767,25 @@ declare class CalendarRulesResource extends APIResource {
5419
5767
  //#endregion
5420
5768
  //#region src/resources/calendars.d.ts
5421
5769
  /**
5422
- * Calendars are named, reusable date vocabularies ("Peak 2026", "Weekends").
5770
+ * Calendars are named, reusable sets of dates ("Peak 2026", "Weekends").
5423
5771
  * The dates themselves live in the rules attached to them.
5424
5772
  *
5425
5773
  * A calendar containing no rules is valid for **all** dates, not none.
5426
5774
  */
5427
5775
  declare class CalendarsResource extends APIResource {
5428
- list(params?: PageParams, options?: RequestOptions): Promise<Page<Calendar>>;
5429
- get(id: string, options?: RequestOptions): Promise<Calendar>;
5776
+ /**
5777
+ * Pass `view: 'full'` to include `plan_entitlement_count` on every
5778
+ * calendar.
5779
+ */
5780
+ list(params?: PageParams & {
5781
+ view?: CalendarView;
5782
+ }, options?: RequestOptions): Promise<Page<Calendar>>;
5783
+ /**
5784
+ * Pass `view: 'full'` to include `plan_entitlement_count`.
5785
+ */
5786
+ get(id: string, params?: {
5787
+ view?: CalendarView;
5788
+ }, options?: RequestOptions): Promise<Calendar>;
5430
5789
  create(params: CreateCalendarParams, options?: RequestOptions): Promise<Calendar>;
5431
5790
  update(id: string, params: UpdateCalendarParams, options?: RequestOptions): Promise<Calendar>;
5432
5791
  delete(id: string, options?: RequestOptions): Promise<void>;
@@ -5465,6 +5824,14 @@ declare class EntitlementsResource extends APIResource {
5465
5824
  /**
5466
5825
  * Fire-and-forget batch usage reporting (one row per member). Idempotent
5467
5826
  * per (key, member). Returns the recorded usage rows.
5827
+ *
5828
+ * `target` is the single registered code for the venue, zone, shop or gate
5829
+ * the usage happened at — one event, one place, which is why it is
5830
+ * singular here where the reads take `targets`. It is both the context the
5831
+ * entitlement is judged in and a column on the row that comes back, so it
5832
+ * is queryable in a way the free-form `context` is not. It is part of the
5833
+ * idempotency fingerprint: a replay of the same key at a different target
5834
+ * is refused rather than silently returning the original row.
5468
5835
  */
5469
5836
  recordUsage(params: RecordUsageParams, options?: IdempotentRequestOptions): Promise<EntitlementUsage[]>;
5470
5837
  list(options?: RequestOptions): Promise<Entitlement[]>;
@@ -5493,8 +5860,24 @@ declare class MembersResource extends APIResource {
5493
5860
  since?: string;
5494
5861
  }, options?: RequestOptions): Promise<MemberSyncResponse>;
5495
5862
  get(id: string, options?: RequestOptions): Promise<Member>;
5863
+ /**
5864
+ * The entitlements a member can use right now.
5865
+ *
5866
+ * `targets` filters the result down to the benefits valid at the venue,
5867
+ * zone, shop or gate it names — the same codes `admit.check` takes, but
5868
+ * read as a filter here rather than as the context a gate decision is made
5869
+ * in. Three states: omit it and nothing is filtered by target; pass `[]`
5870
+ * and only benefits valid anywhere come back; pass codes and a benefit
5871
+ * needs one of them. Codes are matched exactly, so send them back verbatim
5872
+ * from `targetCodes.list()` — an unregistered one is refused with a 400.
5873
+ *
5874
+ * Each entitlement carries `valid_on` and `valid_at` when something
5875
+ * restricts it by date or by target; both list only what it matched, never
5876
+ * what it failed.
5877
+ */
5496
5878
  listEntitlements(id: string, params?: {
5497
5879
  type?: EntitlementType;
5880
+ targets?: string[];
5498
5881
  }, options?: RequestOptions): Promise<MemberEntitlement[]>;
5499
5882
  /**
5500
5883
  * Updates a member's details. Accepts `name`, `date_of_birth` and `role`
@@ -5569,12 +5952,31 @@ declare class MembershipsResource extends APIResource {
5569
5952
  listTermTransactions(id: string, termId: string, params?: PageParams, options?: RequestOptions): Promise<Page<Transaction>>;
5570
5953
  }
5571
5954
  //#endregion
5955
+ //#region src/resources/plan-entitlement-availabilities.d.ts
5956
+ /**
5957
+ * An availability row says when and where one plan entitlement applies: a
5958
+ * calendar (null = any date) and a set of registered target codes (empty =
5959
+ * anywhere). Rows OR, and a plan entitlement with no rows at all is
5960
+ * unrestricted.
5961
+ *
5962
+ * Rows are created and listed through their plan entitlement
5963
+ * (`ophelio.planEntitlements.createAvailability` / `listAvailabilities`); this
5964
+ * resource addresses an individual row.
5965
+ */
5966
+ declare class PlanEntitlementAvailabilitiesResource extends APIResource {
5967
+ get(id: string, options?: RequestOptions): Promise<PlanEntitlementAvailability>;
5968
+ update(id: string, params: UpdatePlanEntitlementAvailabilityParams, options?: RequestOptions): Promise<PlanEntitlementAvailability>;
5969
+ delete(id: string, options?: RequestOptions): Promise<void>;
5970
+ }
5971
+ //#endregion
5572
5972
  //#region src/resources/plan-entitlements.d.ts
5573
5973
  declare class PlanEntitlementsResource extends APIResource {
5574
5974
  get(id: string, options?: RequestOptions): Promise<PlanEntitlement>;
5575
5975
  update(id: string, params: UpdatePlanEntitlementParams, options?: RequestOptions): Promise<PlanEntitlement>;
5576
5976
  /** Detach an entitlement from its plan. Attach via plans.createEntitlement(). */
5577
5977
  delete(id: string, options?: RequestOptions): Promise<void>;
5978
+ listAvailabilities(id: string, params?: PageParams, options?: RequestOptions): Promise<Page<PlanEntitlementAvailability>>;
5979
+ createAvailability(id: string, params: CreatePlanEntitlementAvailabilityParams, options?: RequestOptions): Promise<PlanEntitlementAvailability>;
5578
5980
  }
5579
5981
  //#endregion
5580
5982
  //#region src/resources/plan-links.d.ts
@@ -5626,13 +6028,24 @@ declare class SalesChannelsResource extends APIResource {
5626
6028
  //#endregion
5627
6029
  //#region src/resources/target-codes.d.ts
5628
6030
  /**
5629
- * The registered vocabulary of locations a gate can report (`venue_a`,
5630
- * `coffee_shop`). Codes are matched exactly — list them and send values back
5631
- * verbatim rather than constructing or case-folding them.
6031
+ * The registered code for each venue, zone, shop or gate a request can name
6032
+ * (`venue_a`, `coffee_shop`). Codes are matched exactly — list them and send
6033
+ * values back verbatim rather than constructing or case-folding them.
5632
6034
  */
5633
6035
  declare class TargetCodesResource extends APIResource {
5634
- list(params?: PageParams, options?: RequestOptions): Promise<Page<TargetCode>>;
5635
- get(id: string, options?: RequestOptions): Promise<TargetCode>;
6036
+ /**
6037
+ * Pass `view: 'full'` to include `plan_entitlement_count` on every target
6038
+ * code.
6039
+ */
6040
+ list(params?: PageParams & {
6041
+ view?: TargetCodeView;
6042
+ }, options?: RequestOptions): Promise<Page<TargetCode>>;
6043
+ /**
6044
+ * Pass `view: 'full'` to include `plan_entitlement_count`.
6045
+ */
6046
+ get(id: string, params?: {
6047
+ view?: TargetCodeView;
6048
+ }, options?: RequestOptions): Promise<TargetCode>;
5636
6049
  /**
5637
6050
  * `code` is lowercase letters and digits with single underscores between
5638
6051
  * segments, at least one letter, 2–64 characters. Anything else is refused
@@ -5728,6 +6141,7 @@ declare class Ophelio {
5728
6141
  readonly calendars: CalendarsResource;
5729
6142
  readonly calendarRules: CalendarRulesResource;
5730
6143
  readonly planEntitlements: PlanEntitlementsResource;
6144
+ readonly planEntitlementAvailabilities: PlanEntitlementAvailabilitiesResource;
5731
6145
  readonly planLinks: PlanLinksResource;
5732
6146
  readonly planPricingGroupMappings: PlanPricingGroupMappingsResource;
5733
6147
  readonly billingOptionSalesChannels: BillingOptionSalesChannelsResource;
@@ -5810,4 +6224,4 @@ declare function paginate<T>(fetchPage: (params: PageParams) => Promise<Page<T>>
5810
6224
  */
5811
6225
  declare function collect<T>(fetchPage: (params: PageParams) => Promise<Page<T>>, params?: PageParams): Promise<T[]>;
5812
6226
  //#endregion
5813
- export { AddMemberParams, AdmitResult, AlreadyExistsError, BillingOption, BillingOptionSalesChannel, Calendar, CalendarRule, CancelMembershipParams, CreateBillingOptionParams, CreateBillingOptionSalesChannelParams, CreateCalendarParams, CreateCalendarRuleParams, CreateCustomerParams, CreateEntitlementParams, CreateMemberRoleParams, CreateMembershipParams, CreatePlanEntitlementParams, CreatePlanLinkParams, CreatePlanParams, CreatePlanPricingGroupMappingParams, CreatePricingGroupParams, CreateSalesChannelParams, CreateTargetCodeParams, CreateTransactionParams, CreateWebhookSubscriptionParams, Customer, CustomerMembershipSummary, CustomerView, DEFAULT_BASE_URL, Entitlement, EntitlementType, EntitlementUsage, type IdempotentRequestOptions, InternalError, InvalidArgumentError, Member, MemberEntitlement, MemberRole, MemberSyncResponse, Membership, MembershipTerm, NotFoundError, Ophelio, OphelioConnectionError, OphelioError, type OphelioOptions, OphelioTimeoutError, type OphelioWebhookEvent, Page, PageParams, PermissionDeniedError, Plan, PlanChangeParams, PlanChangeResult, PlanEntitlement, PlanLink, PlanLinkView, PlanPricingGroupMapping, PricingGroup, RecordUsageParams, RedeemEntitlementParams, RedeemEntitlementResponse, ReissueCardParams, RenewMembershipParams, type RequestOptions, ResourceExhaustedError, SalesChannel, ScheduledChange, SyncMember, TargetCode, Transaction, UnauthenticatedError, UnavailableError, UnimplementedError, UpdateBillingOptionParams, UpdateCalendarParams, UpdateCalendarRuleParams, UpdateCustomerParams, UpdateEntitlementParams, UpdateMemberParams, UpdateMemberRoleParams, UpdateMembershipParams, UpdatePlanEntitlementParams, UpdatePlanParams, UpdatePricingGroupParams, UpdateSalesChannelParams, UpdateTargetCodeParams, UpdateWebhookSubscriptionParams, WEBHOOK_EVENT_CODES, WebhookDelivery, type WebhookEventCode, WebhookSignatureVerificationError, WebhookSubscription, collect, type components, constructEvent, type operations, paginate, type paths, verifyWebhookSignature };
6227
+ export { AddMemberParams, AdmitResult, AlreadyExistsError, BillingOption, BillingOptionSalesChannel, Calendar, CalendarRule, CalendarView, CancelMembershipParams, CreateBillingOptionParams, CreateBillingOptionSalesChannelParams, CreateCalendarParams, CreateCalendarRuleParams, CreateCustomerParams, CreateEntitlementParams, CreateMemberRoleParams, CreateMembershipParams, CreatePlanEntitlementAvailabilityParams, CreatePlanEntitlementParams, CreatePlanLinkParams, CreatePlanParams, CreatePlanPricingGroupMappingParams, CreatePricingGroupParams, CreateSalesChannelParams, CreateTargetCodeParams, CreateTransactionParams, CreateWebhookSubscriptionParams, Customer, CustomerMembershipSummary, CustomerView, DEFAULT_BASE_URL, Entitlement, EntitlementType, EntitlementUsage, type IdempotentRequestOptions, InternalError, InvalidArgumentError, Member, MemberEntitlement, MemberRole, MemberSyncResponse, Membership, MembershipTerm, NotFoundError, Ophelio, OphelioConnectionError, OphelioError, type OphelioOptions, OphelioTimeoutError, type OphelioWebhookEvent, Page, PageParams, PermissionDeniedError, Plan, PlanChangeParams, PlanChangeResult, PlanEntitlement, PlanEntitlementAvailability, PlanLink, PlanLinkView, PlanPricingGroupMapping, PricingGroup, RecordUsageParams, RedeemEntitlementParams, RedeemEntitlementResponse, ReissueCardParams, RenewMembershipParams, type RequestOptions, ResourceExhaustedError, SalesChannel, ScheduledChange, SyncMember, TargetCode, TargetCodeView, Transaction, UnauthenticatedError, UnavailableError, UnimplementedError, UpdateBillingOptionParams, UpdateCalendarParams, UpdateCalendarRuleParams, UpdateCustomerParams, UpdateEntitlementParams, UpdateMemberParams, UpdateMemberRoleParams, UpdateMembershipParams, UpdatePlanEntitlementAvailabilityParams, UpdatePlanEntitlementParams, UpdatePlanParams, UpdatePricingGroupParams, UpdateSalesChannelParams, UpdateTargetCodeParams, UpdateWebhookSubscriptionParams, WEBHOOK_EVENT_CODES, WebhookDelivery, type WebhookEventCode, WebhookSignatureVerificationError, WebhookSubscription, collect, type components, constructEvent, type operations, paginate, type paths, verifyWebhookSignature };