@openmeter/sdk 1.0.0-beta.2 → 1.0.0-beta.201

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/README.md +44 -65
  2. package/dist/cjs/index.cjs +18 -0
  3. package/dist/cjs/index.d.cts +1 -0
  4. package/dist/cjs/index.js.map +1 -0
  5. package/dist/cjs/src/client/apps.cjs +174 -0
  6. package/dist/cjs/src/client/apps.d.cts +259 -0
  7. package/dist/cjs/src/client/apps.js.map +1 -0
  8. package/dist/cjs/src/client/billing.cjs +309 -0
  9. package/dist/cjs/src/client/billing.d.cts +510 -0
  10. package/dist/cjs/src/client/billing.js.map +1 -0
  11. package/dist/cjs/src/client/common.cjs +47 -0
  12. package/dist/cjs/src/client/common.d.cts +30 -0
  13. package/dist/cjs/src/client/common.js.map +1 -0
  14. package/dist/cjs/src/client/customers.cjs +185 -0
  15. package/dist/cjs/src/client/customers.d.cts +163 -0
  16. package/dist/cjs/src/client/customers.js.map +1 -0
  17. package/dist/cjs/src/client/entitlements.cjs +244 -0
  18. package/dist/cjs/src/client/entitlements.d.cts +442 -0
  19. package/dist/cjs/src/client/entitlements.js.map +1 -0
  20. package/dist/cjs/src/client/events.cjs +66 -0
  21. package/dist/cjs/src/client/events.d.cts +31 -0
  22. package/dist/cjs/src/client/events.js.map +1 -0
  23. package/dist/cjs/src/client/features.cjs +78 -0
  24. package/dist/cjs/src/client/features.d.cts +78 -0
  25. package/dist/cjs/src/client/features.js.map +1 -0
  26. package/dist/cjs/src/client/index.cjs +108 -0
  27. package/dist/cjs/src/client/index.d.cts +45 -0
  28. package/dist/cjs/src/client/index.js.map +1 -0
  29. package/dist/cjs/src/client/meters.cjs +93 -0
  30. package/dist/cjs/src/client/meters.d.cts +160 -0
  31. package/dist/cjs/src/client/meters.js.map +1 -0
  32. package/dist/cjs/src/client/notifications.cjs +249 -0
  33. package/dist/cjs/src/client/notifications.d.cts +219 -0
  34. package/dist/cjs/src/client/notifications.js.map +1 -0
  35. package/dist/cjs/src/client/plans.cjs +127 -0
  36. package/dist/cjs/src/client/plans.d.cts +142 -0
  37. package/dist/cjs/src/client/plans.js.map +1 -0
  38. package/dist/cjs/src/client/portal.cjs +55 -0
  39. package/dist/cjs/src/client/portal.d.cts +48 -0
  40. package/dist/cjs/src/client/portal.js.map +1 -0
  41. package/dist/cjs/src/client/schemas.cjs +3 -0
  42. package/dist/cjs/src/client/schemas.d.cts +17628 -0
  43. package/dist/cjs/src/client/schemas.js.map +1 -0
  44. package/dist/cjs/src/client/subjects.cjs +76 -0
  45. package/dist/cjs/src/client/subjects.d.cts +70 -0
  46. package/dist/cjs/src/client/subjects.js.map +1 -0
  47. package/dist/cjs/src/client/subscriptions.cjs +116 -0
  48. package/dist/cjs/src/client/subscriptions.d.cts +147 -0
  49. package/dist/cjs/src/client/subscriptions.js.map +1 -0
  50. package/dist/cjs/src/client/utils.cjs +69 -0
  51. package/dist/cjs/src/client/utils.d.cts +12 -0
  52. package/dist/cjs/src/client/utils.js.map +1 -0
  53. package/dist/cjs/src/portal/index.cjs +57 -0
  54. package/dist/cjs/src/portal/index.d.cts +104 -0
  55. package/dist/cjs/src/portal/index.js.map +1 -0
  56. package/dist/cjs/src/react/context.cjs +35 -0
  57. package/dist/cjs/src/react/context.d.cts +9 -0
  58. package/dist/cjs/src/react/context.js.map +1 -0
  59. package/dist/cjs/tsconfig.177d1bd1.tsbuildinfo +1 -0
  60. package/dist/cjs/tsconfig.ae2c6e83.tsbuildinfo +1 -0
  61. package/dist/index.d.ts +1 -11
  62. package/dist/index.js +2 -11
  63. package/dist/index.js.map +1 -0
  64. package/dist/src/client/apps.d.ts +259 -0
  65. package/dist/src/client/apps.js +168 -0
  66. package/dist/src/client/apps.js.map +1 -0
  67. package/dist/src/client/billing.d.ts +510 -0
  68. package/dist/src/client/billing.js +302 -0
  69. package/dist/src/client/billing.js.map +1 -0
  70. package/dist/src/client/common.d.ts +30 -0
  71. package/dist/src/client/common.js +42 -0
  72. package/dist/src/client/common.js.map +1 -0
  73. package/dist/src/client/customers.d.ts +163 -0
  74. package/dist/src/client/customers.js +179 -0
  75. package/dist/src/client/customers.js.map +1 -0
  76. package/dist/src/client/entitlements.d.ts +442 -0
  77. package/dist/src/client/entitlements.js +239 -0
  78. package/dist/src/client/entitlements.js.map +1 -0
  79. package/dist/src/client/events.d.ts +31 -0
  80. package/dist/src/client/events.js +58 -0
  81. package/dist/src/client/events.js.map +1 -0
  82. package/dist/src/client/features.d.ts +78 -0
  83. package/dist/src/client/features.js +74 -0
  84. package/dist/src/client/features.js.map +1 -0
  85. package/dist/src/client/index.d.ts +45 -0
  86. package/dist/src/client/index.js +68 -0
  87. package/dist/src/client/index.js.map +1 -0
  88. package/dist/src/client/meters.d.ts +160 -0
  89. package/dist/src/client/meters.js +89 -0
  90. package/dist/src/client/meters.js.map +1 -0
  91. package/dist/src/client/notifications.d.ts +219 -0
  92. package/dist/src/client/notifications.js +242 -0
  93. package/dist/src/client/notifications.js.map +1 -0
  94. package/dist/src/client/plans.d.ts +142 -0
  95. package/dist/src/client/plans.js +123 -0
  96. package/dist/src/client/plans.js.map +1 -0
  97. package/dist/src/client/portal.d.ts +48 -0
  98. package/dist/src/client/portal.js +51 -0
  99. package/dist/src/client/portal.js.map +1 -0
  100. package/dist/src/client/schemas.d.ts +17628 -0
  101. package/dist/src/client/schemas.js +2 -0
  102. package/dist/src/client/schemas.js.map +1 -0
  103. package/dist/src/client/subjects.d.ts +70 -0
  104. package/dist/src/client/subjects.js +72 -0
  105. package/dist/src/client/subjects.js.map +1 -0
  106. package/dist/src/client/subscriptions.d.ts +147 -0
  107. package/dist/src/client/subscriptions.js +112 -0
  108. package/dist/src/client/subscriptions.js.map +1 -0
  109. package/dist/src/client/utils.d.ts +12 -0
  110. package/dist/src/client/utils.js +63 -0
  111. package/dist/src/client/utils.js.map +1 -0
  112. package/dist/src/portal/index.d.ts +104 -0
  113. package/dist/src/portal/index.js +50 -0
  114. package/dist/src/portal/index.js.map +1 -0
  115. package/dist/src/react/context.d.ts +9 -0
  116. package/dist/src/react/context.js +16 -0
  117. package/dist/src/react/context.js.map +1 -0
  118. package/dist/tsconfig.tsbuildinfo +1 -1
  119. package/package.json +93 -49
  120. package/patches/openapi-typescript.patch +73 -0
  121. package/clients/client.ts +0 -153
  122. package/clients/event.ts +0 -109
  123. package/clients/meter.ts +0 -84
  124. package/dist/clients/client.d.ts +0 -40
  125. package/dist/clients/client.js +0 -101
  126. package/dist/clients/event.d.ts +0 -65
  127. package/dist/clients/event.js +0 -38
  128. package/dist/clients/meter.d.ts +0 -52
  129. package/dist/clients/meter.js +0 -52
  130. package/dist/schemas/openapi.d.ts +0 -414
  131. package/dist/schemas/openapi.js +0 -5
  132. package/dist/test/agent.d.ts +0 -2
  133. package/dist/test/agent.js +0 -105
  134. package/dist/test/mocks.d.ts +0 -11
  135. package/dist/test/mocks.js +0 -21
  136. package/index.ts +0 -17
  137. package/schemas/openapi.ts +0 -421
@@ -0,0 +1,160 @@
1
+ import type { RequestOptions } from './common.js';
2
+ import type { MeterCreate, operations, paths } from './schemas.js';
3
+ import type { Client } from 'openapi-fetch';
4
+ /**
5
+ * Meters
6
+ * @description Meters are used to track and manage usage of your application.
7
+ */
8
+ export declare class Meters {
9
+ private client;
10
+ constructor(client: Client<paths, `${string}/${string}`>);
11
+ /**
12
+ * Create a meter
13
+ * @param meter - The meter to create
14
+ * @param signal - An optional abort signal
15
+ * @returns The created meter
16
+ */
17
+ create(meter: MeterCreate, options?: RequestOptions): Promise<{
18
+ readonly id: string;
19
+ description?: string;
20
+ metadata?: import("./schemas.js").components["schemas"]["Metadata"] | null;
21
+ readonly createdAt: Date;
22
+ readonly updatedAt: Date;
23
+ readonly deletedAt?: Date;
24
+ name?: string;
25
+ slug: string;
26
+ aggregation: import("./schemas.js").components["schemas"]["MeterAggregation"];
27
+ eventType: string;
28
+ eventFrom?: Date;
29
+ valueProperty?: string;
30
+ groupBy?: {
31
+ [key: string]: string;
32
+ };
33
+ }>;
34
+ /**
35
+ * Get a meter by ID or slug
36
+ * @param idOrSlug - The ID or slug of the meter
37
+ * @param signal - An optional abort signal
38
+ * @returns The meter
39
+ */
40
+ get(idOrSlug: operations['getMeter']['parameters']['path']['meterIdOrSlug'], options?: RequestOptions): Promise<{
41
+ readonly id: string;
42
+ description?: string;
43
+ metadata?: import("./schemas.js").components["schemas"]["Metadata"] | null;
44
+ readonly createdAt: Date;
45
+ readonly updatedAt: Date;
46
+ readonly deletedAt?: Date;
47
+ name?: string;
48
+ slug: string;
49
+ aggregation: import("./schemas.js").components["schemas"]["MeterAggregation"];
50
+ eventType: string;
51
+ eventFrom?: Date;
52
+ valueProperty?: string;
53
+ groupBy?: {
54
+ [key: string]: string;
55
+ };
56
+ }>;
57
+ /**
58
+ * List meters
59
+ * @param signal - An optional abort signal
60
+ * @returns The meters
61
+ */
62
+ list(options?: RequestOptions): Promise<{
63
+ readonly id: string;
64
+ description?: string;
65
+ metadata?: import("./schemas.js").components["schemas"]["Metadata"] | null;
66
+ readonly createdAt: Date;
67
+ readonly updatedAt: Date;
68
+ readonly deletedAt?: Date;
69
+ name?: string;
70
+ slug: string;
71
+ aggregation: import("./schemas.js").components["schemas"]["MeterAggregation"];
72
+ eventType: string;
73
+ eventFrom?: Date;
74
+ valueProperty?: string;
75
+ groupBy?: {
76
+ [key: string]: string;
77
+ };
78
+ }[]>;
79
+ /**
80
+ * Query usage data for a meter by ID or slug
81
+ * @param idOrSlug - The ID or slug of the meter
82
+ * @param query - The query parameters
83
+ * @param signal - An optional abort signal
84
+ * @returns The meter data
85
+ */
86
+ query(idOrSlug: operations['queryMeter']['parameters']['path']['meterIdOrSlug'], query?: operations['queryMeter']['parameters']['query'], options?: RequestOptions): Promise<import("openapi-typescript-helpers").SuccessResponse<{
87
+ 200: {
88
+ headers: {
89
+ [name: string]: unknown;
90
+ };
91
+ content: {
92
+ "application/json": import("./schemas.js").components["schemas"]["MeterQueryResult"];
93
+ "text/csv": string;
94
+ };
95
+ };
96
+ 400: {
97
+ headers: {
98
+ [name: string]: unknown;
99
+ };
100
+ content: {
101
+ "application/problem+json": import("./schemas.js").components["schemas"]["BadRequestProblemResponse"];
102
+ };
103
+ };
104
+ 401: {
105
+ headers: {
106
+ [name: string]: unknown;
107
+ };
108
+ content: {
109
+ "application/problem+json": import("./schemas.js").components["schemas"]["UnauthorizedProblemResponse"];
110
+ };
111
+ };
112
+ 403: {
113
+ headers: {
114
+ [name: string]: unknown;
115
+ };
116
+ content: {
117
+ "application/problem+json": import("./schemas.js").components["schemas"]["ForbiddenProblemResponse"];
118
+ };
119
+ };
120
+ 404: {
121
+ headers: {
122
+ [name: string]: unknown;
123
+ };
124
+ content: {
125
+ "application/problem+json": import("./schemas.js").components["schemas"]["NotFoundProblemResponse"];
126
+ };
127
+ };
128
+ 500: {
129
+ headers: {
130
+ [name: string]: unknown;
131
+ };
132
+ content: {
133
+ "application/problem+json": import("./schemas.js").components["schemas"]["InternalServerErrorProblemResponse"];
134
+ };
135
+ };
136
+ 503: {
137
+ headers: {
138
+ [name: string]: unknown;
139
+ };
140
+ content: {
141
+ "application/problem+json": import("./schemas.js").components["schemas"]["ServiceUnavailableProblemResponse"];
142
+ };
143
+ };
144
+ default: {
145
+ headers: {
146
+ [name: string]: unknown;
147
+ };
148
+ content: {
149
+ "application/problem+json": import("./schemas.js").components["schemas"]["UnexpectedProblemResponse"];
150
+ };
151
+ };
152
+ }, `${string}/${string}`>>;
153
+ /**
154
+ * Delete a meter by ID or slug
155
+ * @param idOrSlug - The ID or slug of the meter
156
+ * @param signal - An optional abort signal
157
+ * @returns The deleted meter
158
+ */
159
+ delete(idOrSlug: operations['deleteMeter']['parameters']['path']['meterIdOrSlug'], options?: RequestOptions): Promise<undefined>;
160
+ }
@@ -0,0 +1,89 @@
1
+ import { transformResponse } from './utils.js';
2
+ /**
3
+ * Meters
4
+ * @description Meters are used to track and manage usage of your application.
5
+ */
6
+ export class Meters {
7
+ client;
8
+ constructor(client) {
9
+ this.client = client;
10
+ }
11
+ /**
12
+ * Create a meter
13
+ * @param meter - The meter to create
14
+ * @param signal - An optional abort signal
15
+ * @returns The created meter
16
+ */
17
+ async create(meter, options) {
18
+ const resp = await this.client.POST('/api/v1/meters', {
19
+ body: meter,
20
+ ...options,
21
+ });
22
+ return transformResponse(resp);
23
+ }
24
+ /**
25
+ * Get a meter by ID or slug
26
+ * @param idOrSlug - The ID or slug of the meter
27
+ * @param signal - An optional abort signal
28
+ * @returns The meter
29
+ */
30
+ async get(idOrSlug, options) {
31
+ const resp = await this.client.GET('/api/v1/meters/{meterIdOrSlug}', {
32
+ params: {
33
+ path: {
34
+ meterIdOrSlug: idOrSlug,
35
+ },
36
+ },
37
+ ...options,
38
+ });
39
+ return transformResponse(resp);
40
+ }
41
+ /**
42
+ * List meters
43
+ * @param signal - An optional abort signal
44
+ * @returns The meters
45
+ */
46
+ async list(options) {
47
+ const resp = await this.client.GET('/api/v1/meters', {
48
+ ...options,
49
+ });
50
+ return transformResponse(resp);
51
+ }
52
+ /**
53
+ * Query usage data for a meter by ID or slug
54
+ * @param idOrSlug - The ID or slug of the meter
55
+ * @param query - The query parameters
56
+ * @param signal - An optional abort signal
57
+ * @returns The meter data
58
+ */
59
+ async query(idOrSlug, query, options) {
60
+ const resp = await this.client.GET('/api/v1/meters/{meterIdOrSlug}/query', {
61
+ params: {
62
+ path: {
63
+ meterIdOrSlug: idOrSlug,
64
+ },
65
+ query,
66
+ },
67
+ ...options,
68
+ });
69
+ return transformResponse(resp);
70
+ }
71
+ /**
72
+ * Delete a meter by ID or slug
73
+ * @param idOrSlug - The ID or slug of the meter
74
+ * @param signal - An optional abort signal
75
+ * @returns The deleted meter
76
+ */
77
+ async delete(idOrSlug, options) {
78
+ const resp = await this.client.DELETE('/api/v1/meters/{meterIdOrSlug}', {
79
+ params: {
80
+ path: {
81
+ meterIdOrSlug: idOrSlug,
82
+ },
83
+ },
84
+ ...options,
85
+ });
86
+ return transformResponse(resp);
87
+ }
88
+ }
89
+ //# sourceMappingURL=meters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meters.js","sourceRoot":"","sources":["../../../src/client/meters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAK9C;;;GAGG;AACH,MAAM,OAAO,MAAM;IACG;IAApB,YAAoB,MAA4C;QAA5C,WAAM,GAAN,MAAM,CAAsC;IAAG,CAAC;IAEpE;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,KAAkB,EAAE,OAAwB;QAC9D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACpD,IAAI,EAAE,KAAK;YACX,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,GAAG,CACd,QAAuE,EACvE,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gCAAgC,EAAE;YACnE,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,aAAa,EAAE,QAAQ;iBACxB;aACF;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,IAAI,CAAC,OAAwB;QACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE;YACnD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,KAAK,CAChB,QAAyE,EACzE,KAAuD,EACvD,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sCAAsC,EAAE;YACzE,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,aAAa,EAAE,QAAQ;iBACxB;gBACD,KAAK;aACN;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CACjB,QAA0E,EAC1E,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gCAAgC,EAAE;YACtE,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,aAAa,EAAE,QAAQ;iBACxB;aACF;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;CACF"}
@@ -0,0 +1,219 @@
1
+ import type { RequestOptions } from './common.js';
2
+ import type { NotificationChannel, NotificationRuleCreateRequest, operations, paths } from './schemas.js';
3
+ import type { Client } from 'openapi-fetch';
4
+ /**
5
+ * Notifications
6
+ * @description Notifications provide automated triggers when specific entitlement balances and usage thresholds are reached, ensuring that your customers and sales teams are always informed. Notify customers and internal teams when specific conditions are met, like reaching 75%, 100%, and 150% of their monthly usage allowance.
7
+ */
8
+ export declare class Notifications {
9
+ private client;
10
+ channels: NotificationChannels;
11
+ rules: NotificationRules;
12
+ events: NotificationEvents;
13
+ constructor(client: Client<paths, `${string}/${string}`>);
14
+ }
15
+ /**
16
+ * Notification Channels
17
+ * @description Notification channels are the destinations for notifications.
18
+ */
19
+ export declare class NotificationChannels {
20
+ private client;
21
+ constructor(client: Client<paths, `${string}/${string}`>);
22
+ /**
23
+ * Create a notification channel
24
+ * @param notification - The notification to create
25
+ * @param signal - An optional abort signal
26
+ * @returns The created notification
27
+ */
28
+ create(notification: NotificationChannel, options?: RequestOptions): Promise<{
29
+ readonly createdAt: Date;
30
+ readonly updatedAt: Date;
31
+ readonly deletedAt?: Date;
32
+ readonly id: string;
33
+ type: "WEBHOOK";
34
+ name: string;
35
+ disabled?: boolean;
36
+ url: string;
37
+ customHeaders?: {
38
+ [key: string]: string;
39
+ };
40
+ signingSecret?: string;
41
+ }>;
42
+ /**
43
+ * Get a notification channel by ID
44
+ * @param id - The ID of the notification channel
45
+ * @param signal - An optional abort signal
46
+ * @returns The notification channel
47
+ */
48
+ get(id: operations['getNotificationChannel']['parameters']['path']['channelId'], options?: RequestOptions): Promise<{
49
+ readonly createdAt: Date;
50
+ readonly updatedAt: Date;
51
+ readonly deletedAt?: Date;
52
+ readonly id: string;
53
+ type: "WEBHOOK";
54
+ name: string;
55
+ disabled?: boolean;
56
+ url: string;
57
+ customHeaders?: {
58
+ [key: string]: string;
59
+ };
60
+ signingSecret?: string;
61
+ }>;
62
+ /**
63
+ * Update a notification channel
64
+ * @param id - The ID of the notification channel
65
+ * @param notification - The notification to update
66
+ * @param signal - An optional abort signal
67
+ * @returns The updated notification
68
+ */
69
+ update(id: operations['updateNotificationChannel']['parameters']['path']['channelId'], notification: NotificationChannel, options?: RequestOptions): Promise<{
70
+ readonly createdAt: Date;
71
+ readonly updatedAt: Date;
72
+ readonly deletedAt?: Date;
73
+ readonly id: string;
74
+ type: "WEBHOOK";
75
+ name: string;
76
+ disabled?: boolean;
77
+ url: string;
78
+ customHeaders?: {
79
+ [key: string]: string;
80
+ };
81
+ signingSecret?: string;
82
+ }>;
83
+ /**
84
+ * List notification channels
85
+ * @param query - The query parameters
86
+ * @param signal - An optional abort signal
87
+ * @returns The list of notification channels
88
+ */
89
+ list(query?: operations['listNotificationChannels']['parameters']['query'], options?: RequestOptions): Promise<{
90
+ totalCount: number;
91
+ page: number;
92
+ pageSize: number;
93
+ items: import("./schemas.js").components["schemas"]["NotificationChannel"][];
94
+ }>;
95
+ /**
96
+ * Delete a notification channel
97
+ * @param id - The ID of the notification channel
98
+ * @param signal - An optional abort signal
99
+ * @returns The deleted notification
100
+ */
101
+ delete(id: operations['deleteNotificationChannel']['parameters']['path']['channelId'], options?: RequestOptions): Promise<undefined>;
102
+ }
103
+ /**
104
+ * Notification Rules
105
+ * @description Notification rules are the conditions that trigger notifications.
106
+ */
107
+ export declare class NotificationRules {
108
+ private client;
109
+ constructor(client: Client<paths, `${string}/${string}`>);
110
+ /**
111
+ * Create a notification rule
112
+ * @param rule - The rule to create
113
+ * @param signal - An optional abort signal
114
+ * @returns The created rule
115
+ */
116
+ create(rule: NotificationRuleCreateRequest, options?: RequestOptions): Promise<{
117
+ readonly createdAt: Date;
118
+ readonly updatedAt: Date;
119
+ readonly deletedAt?: Date;
120
+ readonly id: string;
121
+ type: "entitlements.balance.threshold";
122
+ name: string;
123
+ disabled?: boolean;
124
+ channels: import("./schemas.js").components["schemas"]["NotificationChannelMeta"][];
125
+ thresholds: import("./schemas.js").components["schemas"]["NotificationRuleBalanceThresholdValue"][];
126
+ features?: import("./schemas.js").components["schemas"]["FeatureMeta"][];
127
+ }>;
128
+ /**
129
+ * Get a notification rule by ID
130
+ * @param id - The ID of the notification rule
131
+ * @param signal - An optional abort signal
132
+ * @returns The notification rule
133
+ */
134
+ get(id: operations['getNotificationRule']['parameters']['path']['ruleId'], options?: RequestOptions): Promise<{
135
+ readonly createdAt: Date;
136
+ readonly updatedAt: Date;
137
+ readonly deletedAt?: Date;
138
+ readonly id: string;
139
+ type: "entitlements.balance.threshold";
140
+ name: string;
141
+ disabled?: boolean;
142
+ channels: import("./schemas.js").components["schemas"]["NotificationChannelMeta"][];
143
+ thresholds: import("./schemas.js").components["schemas"]["NotificationRuleBalanceThresholdValue"][];
144
+ features?: import("./schemas.js").components["schemas"]["FeatureMeta"][];
145
+ }>;
146
+ /**
147
+ * Update a notification rule
148
+ * @param id - The ID of the notification rule
149
+ * @param rule - The rule to update
150
+ * @param signal - An optional abort signal
151
+ * @returns The updated rule
152
+ */
153
+ update(id: operations['updateNotificationRule']['parameters']['path']['ruleId'], rule: NotificationRuleCreateRequest, options?: RequestOptions): Promise<{
154
+ readonly createdAt: Date;
155
+ readonly updatedAt: Date;
156
+ readonly deletedAt?: Date;
157
+ readonly id: string;
158
+ type: "entitlements.balance.threshold";
159
+ name: string;
160
+ disabled?: boolean;
161
+ channels: import("./schemas.js").components["schemas"]["NotificationChannelMeta"][];
162
+ thresholds: import("./schemas.js").components["schemas"]["NotificationRuleBalanceThresholdValue"][];
163
+ features?: import("./schemas.js").components["schemas"]["FeatureMeta"][];
164
+ }>;
165
+ /**
166
+ * List notification rules
167
+ * @param query - The query parameters
168
+ * @param signal - An optional abort signal
169
+ * @returns The list of notification rules
170
+ */
171
+ list(query?: operations['listNotificationRules']['parameters']['query'], options?: RequestOptions): Promise<{
172
+ totalCount: number;
173
+ page: number;
174
+ pageSize: number;
175
+ items: import("./schemas.js").components["schemas"]["NotificationRule"][];
176
+ }>;
177
+ /**
178
+ * Delete a notification rule
179
+ * @param id - The ID of the notification rule
180
+ * @param signal - An optional abort signal
181
+ * @returns The deleted notification
182
+ */
183
+ delete(id: operations['deleteNotificationRule']['parameters']['path']['ruleId'], options?: RequestOptions): Promise<undefined>;
184
+ }
185
+ /**
186
+ * Notification Events
187
+ * @description Notification events are the events that trigger notifications.
188
+ */
189
+ export declare class NotificationEvents {
190
+ private client;
191
+ constructor(client: Client<paths, `${string}/${string}`>);
192
+ /**
193
+ * Get a notification event by ID
194
+ * @param id - The ID of the notification event
195
+ * @param signal - An optional abort signal
196
+ * @returns The notification event
197
+ */
198
+ get(id: operations['getNotificationEvent']['parameters']['path']['eventId'], options?: RequestOptions): Promise<{
199
+ readonly id: string;
200
+ readonly type: import("./schemas.js").components["schemas"]["NotificationEventType"];
201
+ readonly createdAt: Date;
202
+ readonly rule: import("./schemas.js").components["schemas"]["NotificationRule"];
203
+ readonly deliveryStatus: import("./schemas.js").components["schemas"]["NotificationEventDeliveryStatus"][];
204
+ readonly payload: import("./schemas.js").components["schemas"]["NotificationEventPayload"];
205
+ readonly annotations?: import("./schemas.js").components["schemas"]["Annotations"];
206
+ }>;
207
+ /**
208
+ * List notification events
209
+ * @param query - The query parameters
210
+ * @param signal - An optional abort signal
211
+ * @returns The list of notification events
212
+ */
213
+ list(query?: operations['listNotificationEvents']['parameters']['query'], options?: RequestOptions): Promise<{
214
+ totalCount: number;
215
+ page: number;
216
+ pageSize: number;
217
+ items: import("./schemas.js").components["schemas"]["NotificationEvent"][];
218
+ }>;
219
+ }