@openmeter/sdk 1.0.0-beta.121 → 1.0.0-beta.123

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.
@@ -2,6 +2,12 @@
2
2
  * This file was auto-generated by openapi-typescript.
3
3
  * Do not make direct changes to the file.
4
4
  */
5
+ /** OneOf type helpers */
6
+ type Without<T, U> = {
7
+ [P in Exclude<keyof T, keyof U>]?: never;
8
+ };
9
+ type XOR<T, U> = T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
10
+ type OneOf<T extends any[]> = T extends [infer Only] ? Only : T extends [infer A, infer B, ...infer Rest] ? OneOf<[XOR<A, B>, ...Rest]> : never;
5
11
  export interface paths {
6
12
  '/api/v1/events': {
7
13
  /**
@@ -126,13 +132,14 @@ export interface paths {
126
132
  /**
127
133
  * List entitlements
128
134
  * @description List all entitlements regardless of subject. This endpoint is intended for administrative purposes.
135
+ * If page is provided that takes precedence and the paginated response is returned.
129
136
  */
130
137
  get: operations['listEntitlements'];
131
138
  };
132
139
  '/api/v1/features': {
133
140
  /**
134
141
  * List features
135
- * @description List all features.
142
+ * @description List all features. If page is provided that takes precedence and the paginated response is returned.
136
143
  */
137
144
  get: operations['listFeatures'];
138
145
  /**
@@ -160,6 +167,8 @@ export interface paths {
160
167
  /**
161
168
  * List grants
162
169
  * @description List all grants for all the subjects and entitlements. This endpoint is intended for administrative purposes only. To fetch the grants of a specific entitlement please use the /api/v1/subjects/{subjectKeyOrID}/entitlements/{entitlementOrFeatureID}/grants endpoint.
170
+ *
171
+ * If page is provided that takes precedence and the paginated response is returned.
163
172
  */
164
173
  get: operations['listGrants'];
165
174
  };
@@ -264,6 +273,78 @@ export interface paths {
264
273
  */
265
274
  get: operations['getDebugMetrics'];
266
275
  };
276
+ '/api/v1/notification/channels': {
277
+ /**
278
+ * List notification channels
279
+ * @description List all notification channels.
280
+ */
281
+ get: operations['listNotificationChannels'];
282
+ /**
283
+ * Create a notification channel
284
+ * @description Create a new notification channel.
285
+ */
286
+ post: operations['createNotificationChannel'];
287
+ };
288
+ '/api/v1/notification/channels/{channelId}': {
289
+ /**
290
+ * Get notification channel
291
+ * @description Get a notification channel by id.
292
+ */
293
+ get: operations['getNotificationChannel'];
294
+ /**
295
+ * Update notification channel
296
+ * @description Update a notification channel by id.
297
+ */
298
+ put: operations['updateNotificationChannel'];
299
+ /**
300
+ * Delete a notification channel
301
+ * @description Delete notification channel by id.
302
+ */
303
+ delete: operations['deleteNotificationChannel'];
304
+ };
305
+ '/api/v1/notification/rules': {
306
+ /**
307
+ * List notification rules
308
+ * @description List all notification rules.
309
+ */
310
+ get: operations['listNotificationRules'];
311
+ /**
312
+ * Create a notification rule
313
+ * @description Create a new notification rule.
314
+ */
315
+ post: operations['createNotificationRule'];
316
+ };
317
+ '/api/v1/notification/rules/{ruleId}': {
318
+ /**
319
+ * Get notification rule
320
+ * @description Get a notification rule by id.
321
+ */
322
+ get: operations['getNotificationRule'];
323
+ /**
324
+ * Update a notification rule
325
+ * @description Update a notification rule by id.
326
+ */
327
+ put: operations['updateNotificationRule'];
328
+ /**
329
+ * Delete a notification rule
330
+ * @description Delete notification rule by id.
331
+ */
332
+ delete: operations['deleteNotificationRule'];
333
+ };
334
+ '/api/v1/notification/events': {
335
+ /**
336
+ * List notification evens
337
+ * @description List all notification events.
338
+ */
339
+ get: operations['listNotificationEvents'];
340
+ };
341
+ '/api/v1/notification/events/{eventId}': {
342
+ /**
343
+ * Get notification event
344
+ * @description Get a notification event by id.
345
+ */
346
+ get: operations['getNotificationEvent'];
347
+ };
267
348
  }
268
349
  export type webhooks = Record<string, never>;
269
350
  export interface components {
@@ -534,6 +615,43 @@ export interface components {
534
615
  */
535
616
  archivedAt?: string;
536
617
  } & components['schemas']['FeatureCreateInputs'] & components['schemas']['SharedMetaFields'];
618
+ ListFeatureResponse: OneOf<[
619
+ components['schemas']['Feature'][],
620
+ {
621
+ /**
622
+ * @description Total number of features.
623
+ * @example 500
624
+ */
625
+ totalCount: number;
626
+ /**
627
+ * @description Current page number.
628
+ * @example 1
629
+ */
630
+ page: number;
631
+ /**
632
+ * @description Number of features per page.
633
+ * @example 100
634
+ */
635
+ pageSize: number;
636
+ /** @description List of features. */
637
+ items: components['schemas']['Feature'][];
638
+ }
639
+ ]>;
640
+ /** @description Limited representation of a feature resource which includes only its unique identifiers (id, key). */
641
+ FeatureMeta: {
642
+ /**
643
+ * @description A unique identifier for the notification rule.
644
+ * @example 01J2KNP1YTXQRXHTDJ4KPR7PZ0
645
+ */
646
+ id: string;
647
+ /**
648
+ * @description The key is an immutable unique identifier of the feature used throughout the API,
649
+ * for example when interacting with a subject's entitlements.
650
+ *
651
+ * @example gpt4_tokens
652
+ */
653
+ key: string;
654
+ };
537
655
  EntitlementCreateSharedFields: {
538
656
  /**
539
657
  * @description The feature the subject is entitled to use.
@@ -652,6 +770,28 @@ export interface components {
652
770
  /** @description Entitles a subject to use a feature. */
653
771
  EntitlementBoolean: components['schemas']['EntitlementBooleanCreateInputs'] & components['schemas']['EntitlementSharedFields'];
654
772
  Entitlement: components['schemas']['EntitlementMetered'] | components['schemas']['EntitlementStatic'] | components['schemas']['EntitlementBoolean'];
773
+ ListEntitlementResponse: OneOf<[
774
+ components['schemas']['Entitlement'][],
775
+ {
776
+ /**
777
+ * @description Total number of entitlements.
778
+ * @example 500
779
+ */
780
+ totalCount: number;
781
+ /**
782
+ * @description Current page number.
783
+ * @example 1
784
+ */
785
+ page: number;
786
+ /**
787
+ * @description Number of entitlements per page.
788
+ * @example 100
789
+ */
790
+ pageSize: number;
791
+ /** @description List of entitlements. */
792
+ items: components['schemas']['Entitlement'][];
793
+ }
794
+ ]>;
655
795
  /**
656
796
  * @description A segment of the grant burn down history.
657
797
  *
@@ -891,6 +1031,28 @@ export interface components {
891
1031
  voidedAt?: string;
892
1032
  recurrence?: components['schemas']['RecurringPeriod'];
893
1033
  };
1034
+ ListEntitlementGrantResponse: OneOf<[
1035
+ components['schemas']['EntitlementGrant'][],
1036
+ {
1037
+ /**
1038
+ * @description Total number of grants.
1039
+ * @example 500
1040
+ */
1041
+ totalCount: number;
1042
+ /**
1043
+ * @description Current page number.
1044
+ * @example 1
1045
+ */
1046
+ page: number;
1047
+ /**
1048
+ * @description Number of grants per page.
1049
+ * @example 100
1050
+ */
1051
+ pageSize: number;
1052
+ /** @description List of grants. */
1053
+ items: components['schemas']['EntitlementGrant'][];
1054
+ }
1055
+ ]>;
894
1056
  EntitlementValue: {
895
1057
  /**
896
1058
  * @description Whether the subject has access to the feature. Shared accross all entitlement types.
@@ -1189,9 +1351,303 @@ export interface components {
1189
1351
  * @example tokens_total
1190
1352
  */
1191
1353
  IdOrSlug: string;
1354
+ NotificationChannelCreateRequest: components['schemas']['NotificationChannelWebhookCreateRequest'];
1355
+ NotificationChannel: components['schemas']['NotificationChannelWebhook'];
1356
+ NotificationChannels: components['schemas']['NotificationChannel'][];
1357
+ NotificationChannelWebhookCreateRequest: components['schemas']['NotificationChannelCommonCreateRequest'] & {
1358
+ /**
1359
+ * @description Webhook URL where the notification is sent.
1360
+ * @example https://example.com/webhook
1361
+ */
1362
+ url: string;
1363
+ /**
1364
+ * @description Custom HTTP headers sent as part of the webhook request.
1365
+ * @example {
1366
+ * "X-CUSTOM-HEADER": "value"
1367
+ * }
1368
+ */
1369
+ customHeaders?: {
1370
+ [key: string]: unknown;
1371
+ } | null;
1372
+ /**
1373
+ * @description Signing secret used for webhook request validation on the receiving end. Automatically generated if not provided.
1374
+ *
1375
+ * Format: `base64` encoded random bytes optionally prefixed with `whsec_`. Recommended size: 24
1376
+ *
1377
+ * @example whsec_S6g2HLnTwd9AhHwUIMFggVS9OfoPafN8
1378
+ */
1379
+ signingSecret?: string | null;
1380
+ };
1381
+ /** @description Notification channel with webhook type. */
1382
+ NotificationChannelWebhook: components['schemas']['NotificationChannelCommon'] & {
1383
+ /**
1384
+ * @description Webhook URL where the notification is sent.
1385
+ * @example https://example.com/webhook
1386
+ */
1387
+ url: string;
1388
+ /**
1389
+ * @description Custom HTTP headers sent as part of the webhook request.
1390
+ * @example {
1391
+ * "X-CUSTOM-HEADER": "value"
1392
+ * }
1393
+ */
1394
+ customHeaders?: {
1395
+ [key: string]: unknown;
1396
+ } | null;
1397
+ /**
1398
+ * @description Signing secret used for webhook request validation on the receiving end.
1399
+ *
1400
+ * Format: `base64` encoded random bytes optionally prefixed with `whsec_`. Recommended size: 24
1401
+ *
1402
+ * @example whsec_S6g2HLnTwd9AhHwUIMFggVS9OfoPafN8
1403
+ */
1404
+ signingSecret: string;
1405
+ };
1406
+ /**
1407
+ * @description The type of the notification channel.
1408
+ * @example WEBHOOK
1409
+ * @enum {string}
1410
+ */
1411
+ NotificationChannelType: 'WEBHOOK';
1412
+ /** @description Common fields for create notification channel request. */
1413
+ NotificationChannelCommonCreateRequest: {
1414
+ /**
1415
+ * @description User friendly name of the channel.
1416
+ * @example customer-webhook
1417
+ */
1418
+ name: string;
1419
+ /**
1420
+ * @description Whether the channel is disabled or not.
1421
+ * @default false
1422
+ * @example false
1423
+ */
1424
+ disabled?: boolean;
1425
+ type: components['schemas']['NotificationChannelType'];
1426
+ };
1427
+ /** @description Limited representation of notification channel which includes only the channel identifier and its type. */
1428
+ NotificationChannelMeta: {
1429
+ /**
1430
+ * @description A unique identifier for the notification channel.
1431
+ * @example 01J2KNP1YTXQRXHTDJ4KPR7PZ0
1432
+ */
1433
+ id: string;
1434
+ type: components['schemas']['NotificationChannelType'];
1435
+ };
1436
+ /** @description Common fields for notification channel resources. */
1437
+ NotificationChannelCommon: components['schemas']['NotificationChannelMeta'] & {
1438
+ /**
1439
+ * @description User friendly name of the channel.
1440
+ * @example customer-webhook
1441
+ */
1442
+ name?: string;
1443
+ /**
1444
+ * Format: date-time
1445
+ * @description Timestamp when the channel was created.
1446
+ * @example 2023-01-01T00:00:00Z
1447
+ */
1448
+ createdAt?: string;
1449
+ /**
1450
+ * Format: date-time
1451
+ * @description Timestamp when the channel was modified.
1452
+ * @example 2023-01-02T00:00:00Z
1453
+ */
1454
+ updatedAt?: string;
1455
+ /**
1456
+ * @description Whether the channel is disabled or not.
1457
+ * @default false
1458
+ * @example false
1459
+ */
1460
+ disabled?: boolean;
1461
+ };
1462
+ NotificationRuleCreateRequest: components['schemas']['NotificationRuleBalanceThresholdCreateRequest'];
1463
+ NotificationRule: components['schemas']['NotificationRuleBalanceThreshold'];
1464
+ NotificationRules: components['schemas']['NotificationRule'][];
1465
+ /**
1466
+ * @description Request for creating new notification rule for triggering notification events base on conditions
1467
+ * applied to current balance of entitlements.
1468
+ */
1469
+ NotificationRuleBalanceThresholdCreateRequest: components['schemas']['NotificationRuleCommonCreateRequest'] & {
1470
+ /**
1471
+ * @description List of thresholds the rule suppose to be triggered.
1472
+ * @example [
1473
+ * {
1474
+ * "value": 100,
1475
+ * "type": "PERCENT"
1476
+ * },
1477
+ * {
1478
+ * "value": 10000,
1479
+ * "type": "NUMBER"
1480
+ * }
1481
+ * ]
1482
+ */
1483
+ thresholds: components['schemas']['NotificationRuleBalanceThresholdValue'][];
1484
+ /**
1485
+ * @description Optional field for defining the scope of notification by feature. It may contain features by id or key.
1486
+ *
1487
+ * @example [
1488
+ * "gpt4_tokens",
1489
+ * "01ARZ3NDEKTSV4RRFFQ69G5FAV"
1490
+ * ]
1491
+ */
1492
+ features?: string[] | null;
1493
+ };
1494
+ /** @description Threshold value with multiple supported types. */
1495
+ NotificationRuleBalanceThresholdValue: {
1496
+ /** Format: double */
1497
+ value: number;
1498
+ /** @enum {string} */
1499
+ type: 'NUMBER' | 'PERCENT';
1500
+ };
1501
+ /** @description Notification rule for triggering notification events by applying conditions to current balance of entitlements. */
1502
+ NotificationRuleBalanceThreshold: components['schemas']['NotificationRuleCommon'] & {
1503
+ /**
1504
+ * @description List of thresholds the rule suppose to be triggered.
1505
+ * @example [
1506
+ * {
1507
+ * "value": 100,
1508
+ * "type": "PERCENT"
1509
+ * },
1510
+ * {
1511
+ * "value": 10000,
1512
+ * "type": "NUMBER"
1513
+ * }
1514
+ * ]
1515
+ */
1516
+ thresholds: components['schemas']['NotificationRuleBalanceThresholdValue'][];
1517
+ /** @description Optional field containing list of features the rule applies to. */
1518
+ features?: components['schemas']['FeatureMeta'][] | null;
1519
+ };
1520
+ /**
1521
+ * @description The type of the notification event.
1522
+ * @example entitlements.balance.threshold
1523
+ * @enum {string}
1524
+ */
1525
+ NotificationEventType: 'entitlements.balance.threshold';
1526
+ /** @description Defines the common fields for create notification rule request. */
1527
+ NotificationRuleCommonCreateRequest: {
1528
+ type: components['schemas']['NotificationEventType'];
1529
+ /**
1530
+ * @description The user friendly name of the notification rule.
1531
+ * @example Balance threshold reached
1532
+ */
1533
+ name: string;
1534
+ /**
1535
+ * @description List of notification channel identifiers or names the rule applies to.
1536
+ * @example [
1537
+ * "01G65Z755AFWAKHE12NY0CQ9FH"
1538
+ * ]
1539
+ */
1540
+ channels: string[];
1541
+ /**
1542
+ * @description Whether the rule is disabled or not.
1543
+ * @default false
1544
+ * @example false
1545
+ */
1546
+ disabled?: boolean;
1547
+ };
1548
+ /** @description Defines the common fields of a notification rule. */
1549
+ NotificationRuleMeta: {
1550
+ /**
1551
+ * @description A unique identifier for the notification rule.
1552
+ * @example 01J2KNP1YTXQRXHTDJ4KPR7PZ0
1553
+ */
1554
+ id: string;
1555
+ type: components['schemas']['NotificationEventType'];
1556
+ };
1557
+ /** @description Common fields for notification rules. */
1558
+ NotificationRuleCommon: components['schemas']['NotificationRuleMeta'] & {
1559
+ /**
1560
+ * @description The user friendly name of the notification rule.
1561
+ * @example Balance threshold reached
1562
+ */
1563
+ name?: string;
1564
+ /** @description List of notification channels the rule applies to. */
1565
+ channels?: components['schemas']['NotificationChannelMeta'][];
1566
+ /**
1567
+ * Format: date-time
1568
+ * @description Timestamp when the rule was created.
1569
+ * @example 2023-01-01T00:00:00Z
1570
+ */
1571
+ createdAt?: string;
1572
+ /**
1573
+ * Format: date-time
1574
+ * @description Timestamp when the rule was modified.
1575
+ * @example 2023-01-02T00:00:00Z
1576
+ */
1577
+ updatedAt?: string;
1578
+ /**
1579
+ * @description Whether the rule is disabled or not.
1580
+ * @default false
1581
+ * @example false
1582
+ */
1583
+ disabled?: boolean;
1584
+ };
1585
+ /**
1586
+ * @description Notification event generated by the system based on the criteria defined in the corresponding
1587
+ * a notification rule.
1588
+ *
1589
+ * The `payload` field contains the actual message sent to the notification channel.
1590
+ */
1591
+ NotificationEvent: {
1592
+ /**
1593
+ * @description A unique identifier for the notification event.
1594
+ * @example 01J2KNP1YTXQRXHTDJ4KPR7PZ0
1595
+ */
1596
+ id: string;
1597
+ /**
1598
+ * Format: date-time
1599
+ * @description Timestamp when the notification event was created.
1600
+ * @example 2023-01-01T00:00:00Z
1601
+ */
1602
+ createdAt: string;
1603
+ rule?: components['schemas']['NotificationRuleMeta'];
1604
+ /** @description The delivery status of the notification event. */
1605
+ deliveryStatus: components['schemas']['NotificationEventDeliveryStatus'][];
1606
+ payload: components['schemas']['NotificationEventPayload'];
1607
+ };
1608
+ /** @description The actual payload sent to channel as part of the notification event. */
1609
+ NotificationEventPayload: components['schemas']['NotificationEventBalanceThresholdPayload'];
1610
+ /** @description Common fields for notification event payload. */
1611
+ NotificationEventCommonPayload: {
1612
+ /**
1613
+ * @description A unique identifier for the notification event the payload belongs to.
1614
+ * @example 01J2KNP1YTXQRXHTDJ4KPR7PZ0
1615
+ */
1616
+ id: string;
1617
+ type: components['schemas']['NotificationEventType'];
1618
+ /**
1619
+ * Format: date-time
1620
+ * @description Timestamp when the notification event was created.
1621
+ * @example 2023-01-01T00:00:00Z
1622
+ */
1623
+ timestamp: string;
1624
+ };
1625
+ /**
1626
+ * @description Defines payload for notification event which is triggered when the `balance` of the `entitlement`
1627
+ * surpass the user defined `threshold`.
1628
+ */
1629
+ NotificationEventBalanceThresholdPayload: components['schemas']['NotificationEventCommonPayload'] & {
1630
+ data: {
1631
+ entitlement: components['schemas']['EntitlementMetered'];
1632
+ feature: components['schemas']['Feature'];
1633
+ subject: components['schemas']['Subject'];
1634
+ balance: components['schemas']['EntitlementValue'];
1635
+ threshold: components['schemas']['NotificationRuleBalanceThresholdValue'];
1636
+ };
1637
+ };
1638
+ NotificationEventDeliveryStatus: {
1639
+ channel: components['schemas']['NotificationChannelMeta'];
1640
+ /** @enum {string} */
1641
+ state: 'SUCCESS' | 'FAILED' | 'SENDING';
1642
+ /**
1643
+ * Format: date-time
1644
+ * @example 2023-01-01T00:00:00Z
1645
+ */
1646
+ updatedAt: string;
1647
+ };
1192
1648
  };
1193
1649
  responses: {
1194
- /** @description Ledger Exists */
1650
+ /** @description Conflict */
1195
1651
  ConflictProblemResponse: {
1196
1652
  content: {
1197
1653
  'application/problem+json': components['schemas']['ConflictProblem'];
@@ -1243,6 +1699,10 @@ export interface components {
1243
1699
  entitlementIdOrFeatureKey: string;
1244
1700
  /** @description Include deleted entries. */
1245
1701
  includeDeleted?: boolean;
1702
+ /** @description Page number to return */
1703
+ queryPage?: number;
1704
+ /** @description Number of entries to return per page */
1705
+ queryPageSize?: number;
1246
1706
  /** @description Number of entries to return */
1247
1707
  queryLimit?: number;
1248
1708
  /** @description Number of entries to skip */
@@ -1267,9 +1727,15 @@ export interface components {
1267
1727
  /**
1268
1728
  * @description Filtering by multiple subjects.
1269
1729
  *
1270
- * Usage: ?subject=customer-1&subject=customer-2
1730
+ * Usage: `?subject=customer-1&subject=customer-2`
1271
1731
  */
1272
1732
  queryFilterSubject?: string[];
1733
+ /**
1734
+ * @description Filtering by multiple features.
1735
+ *
1736
+ * Usage: `?feature=feature-1&feature=feature-2`
1737
+ */
1738
+ queryFilterFeature?: string[];
1273
1739
  queryFilterGroupBy?: {
1274
1740
  [key: string]: string;
1275
1741
  };
@@ -1278,6 +1744,20 @@ export interface components {
1278
1744
  * `subject` is a reserved group by value.
1279
1745
  */
1280
1746
  queryGroupBy?: string[];
1747
+ /** @description A unique ULID identifier for a notification channel. */
1748
+ channelId: string;
1749
+ /** @description A unique ULID identifier for a notification rule. */
1750
+ ruleId: string;
1751
+ /** @description A unique ULID identifier for a notification event. */
1752
+ eventId: string;
1753
+ /** @description Include disabled entries. */
1754
+ queryIncludeDisabled?: boolean;
1755
+ /**
1756
+ * @description Order by field.
1757
+ *
1758
+ * Usage: `?order=ASC`
1759
+ */
1760
+ order?: 'ASC' | 'DESC';
1281
1761
  };
1282
1762
  requestBodies: never;
1283
1763
  headers: never;
@@ -1691,10 +2171,13 @@ export interface operations {
1691
2171
  /**
1692
2172
  * List entitlements
1693
2173
  * @description List all entitlements regardless of subject. This endpoint is intended for administrative purposes.
2174
+ * If page is provided that takes precedence and the paginated response is returned.
1694
2175
  */
1695
2176
  listEntitlements: {
1696
2177
  parameters: {
1697
2178
  query?: {
2179
+ page?: components['parameters']['queryPage'];
2180
+ pageSize?: components['parameters']['queryPageSize'];
1698
2181
  limit?: components['parameters']['queryLimit'];
1699
2182
  offset?: components['parameters']['queryOffset'];
1700
2183
  /** @description Order by field */
@@ -1702,10 +2185,10 @@ export interface operations {
1702
2185
  };
1703
2186
  };
1704
2187
  responses: {
1705
- /** @description List of entitlements. */
2188
+ /** @description List of entitlements. If page is provided that takes precedence and the paginated response is returned. */
1706
2189
  200: {
1707
2190
  content: {
1708
- 'application/json': components['schemas']['Entitlement'][];
2191
+ 'application/json': components['schemas']['ListEntitlementResponse'];
1709
2192
  };
1710
2193
  };
1711
2194
  400: components['responses']['BadRequestProblemResponse'];
@@ -1715,11 +2198,13 @@ export interface operations {
1715
2198
  };
1716
2199
  /**
1717
2200
  * List features
1718
- * @description List all features.
2201
+ * @description List all features. If page is provided that takes precedence and the paginated response is returned.
1719
2202
  */
1720
2203
  listFeatures: {
1721
2204
  parameters: {
1722
2205
  query?: {
2206
+ page?: components['parameters']['queryPage'];
2207
+ pageSize?: components['parameters']['queryPageSize'];
1723
2208
  limit?: components['parameters']['queryLimit'];
1724
2209
  offset?: components['parameters']['queryOffset'];
1725
2210
  /** @description Order by field */
@@ -1729,10 +2214,10 @@ export interface operations {
1729
2214
  };
1730
2215
  };
1731
2216
  responses: {
1732
- /** @description List of features. */
2217
+ /** @description List of features. If page is provided that takes precedence and the paginated response is returned. */
1733
2218
  200: {
1734
2219
  content: {
1735
- 'application/json': components['schemas']['Feature'][];
2220
+ 'application/json': components['schemas']['ListFeatureResponse'];
1736
2221
  };
1737
2222
  };
1738
2223
  400: components['responses']['BadRequestProblemResponse'];
@@ -1812,22 +2297,27 @@ export interface operations {
1812
2297
  /**
1813
2298
  * List grants
1814
2299
  * @description List all grants for all the subjects and entitlements. This endpoint is intended for administrative purposes only. To fetch the grants of a specific entitlement please use the /api/v1/subjects/{subjectKeyOrID}/entitlements/{entitlementOrFeatureID}/grants endpoint.
2300
+ *
2301
+ * If page is provided that takes precedence and the paginated response is returned.
1815
2302
  */
1816
2303
  listGrants: {
1817
2304
  parameters: {
1818
2305
  query?: {
2306
+ page?: components['parameters']['queryPage'];
2307
+ pageSize?: components['parameters']['queryPageSize'];
1819
2308
  limit?: components['parameters']['queryLimit'];
1820
2309
  offset?: components['parameters']['queryOffset'];
2310
+ order?: components['parameters']['order'];
1821
2311
  /** @description Order by field */
1822
2312
  orderBy?: 'id' | 'createdAt' | 'updatedAt';
1823
2313
  includeDeleted?: components['parameters']['includeDeleted'];
1824
2314
  };
1825
2315
  };
1826
2316
  responses: {
1827
- /** @description List of grants. */
2317
+ /** @description List of grants. If page is provided that takes precedence and the paginated response is returned. */
1828
2318
  200: {
1829
2319
  content: {
1830
- 'application/json': components['schemas']['EntitlementGrant'][];
2320
+ 'application/json': components['schemas']['ListEntitlementGrantResponse'];
1831
2321
  };
1832
2322
  };
1833
2323
  401: components['responses']['UnauthorizedProblemResponse'];
@@ -2175,4 +2665,295 @@ export interface operations {
2175
2665
  default: components['responses']['UnexpectedProblemResponse'];
2176
2666
  };
2177
2667
  };
2668
+ /**
2669
+ * List notification channels
2670
+ * @description List all notification channels.
2671
+ */
2672
+ listNotificationChannels: {
2673
+ parameters: {
2674
+ query?: {
2675
+ limit?: components['parameters']['queryLimit'];
2676
+ offset?: components['parameters']['queryOffset'];
2677
+ /** @description Order by field */
2678
+ orderBy?: 'id' | 'type' | 'createdAt' | 'updatedAt';
2679
+ includeDisabled?: components['parameters']['queryIncludeDisabled'];
2680
+ };
2681
+ };
2682
+ responses: {
2683
+ /** @description List of notification channels. */
2684
+ 200: {
2685
+ content: {
2686
+ 'application/json': components['schemas']['NotificationChannels'];
2687
+ };
2688
+ };
2689
+ 400: components['responses']['BadRequestProblemResponse'];
2690
+ 401: components['responses']['UnauthorizedProblemResponse'];
2691
+ default: components['responses']['UnexpectedProblemResponse'];
2692
+ };
2693
+ };
2694
+ /**
2695
+ * Create a notification channel
2696
+ * @description Create a new notification channel.
2697
+ */
2698
+ createNotificationChannel: {
2699
+ /** @description The notification channel to create. */
2700
+ requestBody: {
2701
+ content: {
2702
+ 'application/json': components['schemas']['NotificationChannelCreateRequest'];
2703
+ };
2704
+ };
2705
+ responses: {
2706
+ /** @description Notification channel created. */
2707
+ 201: {
2708
+ content: {
2709
+ 'application/json': components['schemas']['NotificationChannel'];
2710
+ };
2711
+ };
2712
+ 400: components['responses']['BadRequestProblemResponse'];
2713
+ 401: components['responses']['UnauthorizedProblemResponse'];
2714
+ 409: components['responses']['ConflictProblemResponse'];
2715
+ default: components['responses']['UnexpectedProblemResponse'];
2716
+ };
2717
+ };
2718
+ /**
2719
+ * Get notification channel
2720
+ * @description Get a notification channel by id.
2721
+ */
2722
+ getNotificationChannel: {
2723
+ parameters: {
2724
+ path: {
2725
+ channelId: components['parameters']['channelId'];
2726
+ };
2727
+ };
2728
+ responses: {
2729
+ /** @description Notification channel found. */
2730
+ 200: {
2731
+ content: {
2732
+ 'application/json': components['schemas']['NotificationChannel'];
2733
+ };
2734
+ };
2735
+ 401: components['responses']['UnauthorizedProblemResponse'];
2736
+ 404: components['responses']['NotFoundProblemResponse'];
2737
+ default: components['responses']['UnexpectedProblemResponse'];
2738
+ };
2739
+ };
2740
+ /**
2741
+ * Update notification channel
2742
+ * @description Update a notification channel by id.
2743
+ */
2744
+ updateNotificationChannel: {
2745
+ parameters: {
2746
+ path: {
2747
+ channelId: components['parameters']['channelId'];
2748
+ };
2749
+ };
2750
+ /** @description The notification channel to update. */
2751
+ requestBody: {
2752
+ content: {
2753
+ 'application/json': components['schemas']['NotificationChannelCreateRequest'];
2754
+ };
2755
+ };
2756
+ responses: {
2757
+ /** @description Notification channel updated. */
2758
+ 200: {
2759
+ content: {
2760
+ 'application/json': components['schemas']['NotificationChannel'];
2761
+ };
2762
+ };
2763
+ 401: components['responses']['UnauthorizedProblemResponse'];
2764
+ 404: components['responses']['NotFoundProblemResponse'];
2765
+ default: components['responses']['UnexpectedProblemResponse'];
2766
+ };
2767
+ };
2768
+ /**
2769
+ * Delete a notification channel
2770
+ * @description Delete notification channel by id.
2771
+ */
2772
+ deleteNotificationChannel: {
2773
+ parameters: {
2774
+ path: {
2775
+ channelId: components['parameters']['channelId'];
2776
+ };
2777
+ };
2778
+ responses: {
2779
+ /** @description Notification channel deleted. */
2780
+ 204: {
2781
+ content: never;
2782
+ };
2783
+ 401: components['responses']['UnauthorizedProblemResponse'];
2784
+ 404: components['responses']['NotFoundProblemResponse'];
2785
+ default: components['responses']['UnexpectedProblemResponse'];
2786
+ };
2787
+ };
2788
+ /**
2789
+ * List notification rules
2790
+ * @description List all notification rules.
2791
+ */
2792
+ listNotificationRules: {
2793
+ parameters: {
2794
+ query?: {
2795
+ limit?: components['parameters']['queryLimit'];
2796
+ offset?: components['parameters']['queryOffset'];
2797
+ /** @description Order by field */
2798
+ orderBy?: 'id' | 'type' | 'createdAt' | 'updatedAt';
2799
+ includeDisabled?: components['parameters']['queryIncludeDisabled'];
2800
+ feature?: components['parameters']['queryFilterFeature'];
2801
+ };
2802
+ };
2803
+ responses: {
2804
+ /** @description List of notification rules. */
2805
+ 200: {
2806
+ content: {
2807
+ 'application/json': components['schemas']['NotificationRules'];
2808
+ };
2809
+ };
2810
+ 400: components['responses']['BadRequestProblemResponse'];
2811
+ 401: components['responses']['UnauthorizedProblemResponse'];
2812
+ default: components['responses']['UnexpectedProblemResponse'];
2813
+ };
2814
+ };
2815
+ /**
2816
+ * Create a notification rule
2817
+ * @description Create a new notification rule.
2818
+ */
2819
+ createNotificationRule: {
2820
+ /** @description The notification rule to create. */
2821
+ requestBody: {
2822
+ content: {
2823
+ 'application/json': components['schemas']['NotificationRuleCreateRequest'];
2824
+ };
2825
+ };
2826
+ responses: {
2827
+ /** @description Notification rule created. */
2828
+ 201: {
2829
+ content: {
2830
+ 'application/json': components['schemas']['NotificationRule'];
2831
+ };
2832
+ };
2833
+ 400: components['responses']['BadRequestProblemResponse'];
2834
+ 401: components['responses']['UnauthorizedProblemResponse'];
2835
+ 409: components['responses']['ConflictProblemResponse'];
2836
+ default: components['responses']['UnexpectedProblemResponse'];
2837
+ };
2838
+ };
2839
+ /**
2840
+ * Get notification rule
2841
+ * @description Get a notification rule by id.
2842
+ */
2843
+ getNotificationRule: {
2844
+ parameters: {
2845
+ path: {
2846
+ ruleId: components['parameters']['ruleId'];
2847
+ };
2848
+ };
2849
+ responses: {
2850
+ /** @description Rule found. */
2851
+ 200: {
2852
+ content: {
2853
+ 'application/json': components['schemas']['NotificationRule'];
2854
+ };
2855
+ };
2856
+ 401: components['responses']['UnauthorizedProblemResponse'];
2857
+ 404: components['responses']['NotFoundProblemResponse'];
2858
+ default: components['responses']['UnexpectedProblemResponse'];
2859
+ };
2860
+ };
2861
+ /**
2862
+ * Update a notification rule
2863
+ * @description Update a notification rule by id.
2864
+ */
2865
+ updateNotificationRule: {
2866
+ parameters: {
2867
+ path: {
2868
+ ruleId: components['parameters']['ruleId'];
2869
+ };
2870
+ };
2871
+ /** @description The notification rule to update. */
2872
+ requestBody: {
2873
+ content: {
2874
+ 'application/json': components['schemas']['NotificationRuleCreateRequest'];
2875
+ };
2876
+ };
2877
+ responses: {
2878
+ /** @description Notification Rule updated. */
2879
+ 200: {
2880
+ content: {
2881
+ 'application/json': components['schemas']['NotificationRule'];
2882
+ };
2883
+ };
2884
+ 401: components['responses']['UnauthorizedProblemResponse'];
2885
+ 404: components['responses']['NotFoundProblemResponse'];
2886
+ default: components['responses']['UnexpectedProblemResponse'];
2887
+ };
2888
+ };
2889
+ /**
2890
+ * Delete a notification rule
2891
+ * @description Delete notification rule by id.
2892
+ */
2893
+ deleteNotificationRule: {
2894
+ parameters: {
2895
+ path: {
2896
+ ruleId: components['parameters']['ruleId'];
2897
+ };
2898
+ };
2899
+ responses: {
2900
+ /** @description Notification rule deleted. */
2901
+ 204: {
2902
+ content: never;
2903
+ };
2904
+ 401: components['responses']['UnauthorizedProblemResponse'];
2905
+ 404: components['responses']['NotFoundProblemResponse'];
2906
+ default: components['responses']['UnexpectedProblemResponse'];
2907
+ };
2908
+ };
2909
+ /**
2910
+ * List notification evens
2911
+ * @description List all notification events.
2912
+ */
2913
+ listNotificationEvents: {
2914
+ parameters: {
2915
+ query?: {
2916
+ limit?: components['parameters']['queryLimit'];
2917
+ offset?: components['parameters']['queryOffset'];
2918
+ /** @description Order by field */
2919
+ orderBy?: 'id' | 'createdAt';
2920
+ feature?: components['parameters']['queryFilterFeature'];
2921
+ subject?: components['parameters']['queryFilterSubject'];
2922
+ };
2923
+ };
2924
+ responses: {
2925
+ /** @description List of notification events. */
2926
+ 200: {
2927
+ content: {
2928
+ 'application/json': components['schemas']['NotificationEvent'][];
2929
+ };
2930
+ };
2931
+ 400: components['responses']['BadRequestProblemResponse'];
2932
+ 401: components['responses']['UnauthorizedProblemResponse'];
2933
+ default: components['responses']['UnexpectedProblemResponse'];
2934
+ };
2935
+ };
2936
+ /**
2937
+ * Get notification event
2938
+ * @description Get a notification event by id.
2939
+ */
2940
+ getNotificationEvent: {
2941
+ parameters: {
2942
+ path: {
2943
+ eventId: components['parameters']['eventId'];
2944
+ };
2945
+ };
2946
+ responses: {
2947
+ /** @description Notification event found. */
2948
+ 200: {
2949
+ content: {
2950
+ 'application/json': components['schemas']['NotificationEvent'];
2951
+ };
2952
+ };
2953
+ 401: components['responses']['UnauthorizedProblemResponse'];
2954
+ 404: components['responses']['NotFoundProblemResponse'];
2955
+ default: components['responses']['UnexpectedProblemResponse'];
2956
+ };
2957
+ };
2178
2958
  }
2959
+ export {};