@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,442 @@
1
+ import type { RequestOptions } from './common.cjs';
2
+ import type { EntitlementCreateInputs, EntitlementGrantCreateInput, operations, paths, ResetEntitlementUsageInput } from './schemas.cjs';
3
+ import type { Client } from 'openapi-fetch';
4
+ /**
5
+ * Entitlements
6
+ * @description With Entitlements, you can define and enforce usage limits, implement quota-based pricing, and manage access to features in your application.
7
+ */
8
+ export declare class Entitlements {
9
+ private client;
10
+ grants: Grants;
11
+ constructor(client: Client<paths, `${string}/${string}`>);
12
+ /**
13
+ * Create an entitlement
14
+ *
15
+ * - Boolean entitlements define static feature access, e.g. "Can use SSO authentication".
16
+ * - Static entitlements let you pass along a configuration while granting access, e.g. "Using this feature with X Y settings" (passed in the config).
17
+ * - Metered entitlements have many use cases, from setting up usage-based access to implementing complex credit systems. Example: The customer can use 10000 AI tokens during the usage period of the entitlement.
18
+ *
19
+ * A given subject can only have one active (non-deleted) entitlement per featureKey. If you try to create a new entitlement for a featureKey that already has an active entitlement, the request will fail with a 409 error.
20
+ *
21
+ * Once an entitlement is created you cannot modify it, only delete it.
22
+ *
23
+ * @param subjectIdOrKey - The ID or key of the subject
24
+ * @param entitlement - The entitlement to create
25
+ * @param signal - An optional abort signal
26
+ * @returns The created entitlement
27
+ */
28
+ create(subjectIdOrKey: operations['createEntitlement']['parameters']['path']['subjectIdOrKey'], entitlement: EntitlementCreateInputs, options?: RequestOptions): Promise<import("openapi-typescript-helpers").SuccessResponse<{
29
+ 201: {
30
+ headers: {
31
+ [name: string]: unknown;
32
+ };
33
+ content: {
34
+ "application/json": import("./schemas.cjs").components["schemas"]["Entitlement"];
35
+ };
36
+ };
37
+ 400: {
38
+ headers: {
39
+ [name: string]: unknown;
40
+ };
41
+ content: {
42
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["BadRequestProblemResponse"];
43
+ };
44
+ };
45
+ 401: {
46
+ headers: {
47
+ [name: string]: unknown;
48
+ };
49
+ content: {
50
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["UnauthorizedProblemResponse"];
51
+ };
52
+ };
53
+ 403: {
54
+ headers: {
55
+ [name: string]: unknown;
56
+ };
57
+ content: {
58
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["ForbiddenProblemResponse"];
59
+ };
60
+ };
61
+ 409: {
62
+ headers: {
63
+ [name: string]: unknown;
64
+ };
65
+ content: {
66
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["ConflictProblemResponse"];
67
+ };
68
+ };
69
+ 500: {
70
+ headers: {
71
+ [name: string]: unknown;
72
+ };
73
+ content: {
74
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["InternalServerErrorProblemResponse"];
75
+ };
76
+ };
77
+ 503: {
78
+ headers: {
79
+ [name: string]: unknown;
80
+ };
81
+ content: {
82
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["ServiceUnavailableProblemResponse"];
83
+ };
84
+ };
85
+ default: {
86
+ headers: {
87
+ [name: string]: unknown;
88
+ };
89
+ content: {
90
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["UnexpectedProblemResponse"];
91
+ };
92
+ };
93
+ }, `${string}/${string}`>>;
94
+ /**
95
+ * Get an entitlement by ID
96
+ *
97
+ * @param id - The ID of the entitlement
98
+ * @param signal - An optional abort signal
99
+ * @returns The entitlement
100
+ */
101
+ get(id: operations['getEntitlement']['parameters']['path']['entitlementId'], options?: RequestOptions): Promise<import("openapi-typescript-helpers").SuccessResponse<{
102
+ 200: {
103
+ headers: {
104
+ [name: string]: unknown;
105
+ };
106
+ content: {
107
+ "application/json": import("./schemas.cjs").components["schemas"]["Entitlement"];
108
+ };
109
+ };
110
+ 400: {
111
+ headers: {
112
+ [name: string]: unknown;
113
+ };
114
+ content: {
115
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["BadRequestProblemResponse"];
116
+ };
117
+ };
118
+ 401: {
119
+ headers: {
120
+ [name: string]: unknown;
121
+ };
122
+ content: {
123
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["UnauthorizedProblemResponse"];
124
+ };
125
+ };
126
+ 403: {
127
+ headers: {
128
+ [name: string]: unknown;
129
+ };
130
+ content: {
131
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["ForbiddenProblemResponse"];
132
+ };
133
+ };
134
+ 404: {
135
+ headers: {
136
+ [name: string]: unknown;
137
+ };
138
+ content: {
139
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["NotFoundProblemResponse"];
140
+ };
141
+ };
142
+ 500: {
143
+ headers: {
144
+ [name: string]: unknown;
145
+ };
146
+ content: {
147
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["InternalServerErrorProblemResponse"];
148
+ };
149
+ };
150
+ 503: {
151
+ headers: {
152
+ [name: string]: unknown;
153
+ };
154
+ content: {
155
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["ServiceUnavailableProblemResponse"];
156
+ };
157
+ };
158
+ default: {
159
+ headers: {
160
+ [name: string]: unknown;
161
+ };
162
+ content: {
163
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["UnexpectedProblemResponse"];
164
+ };
165
+ };
166
+ }, `${string}/${string}`>>;
167
+ /**
168
+ * List entitlements
169
+ *
170
+ * @param query - The query parameters
171
+ * @param signal - An optional abort signal
172
+ * @returns The entitlements
173
+ */
174
+ list(query?: Omit<operations['listEntitlements']['parameters']['query'], 'page' | 'pageSize'>, options?: RequestOptions): Promise<({
175
+ type: "metered";
176
+ isSoftLimit?: boolean;
177
+ isUnlimited?: boolean;
178
+ issueAfterReset?: number;
179
+ issueAfterResetPriority?: number;
180
+ preserveOverageAtReset?: boolean;
181
+ readonly createdAt: Date;
182
+ readonly updatedAt: Date;
183
+ readonly deletedAt?: Date;
184
+ metadata?: import("./schemas.cjs").components["schemas"]["Metadata"];
185
+ activeFrom: Date;
186
+ activeTo?: Date;
187
+ readonly id: string;
188
+ subjectKey: string;
189
+ featureKey: string;
190
+ featureId: string;
191
+ readonly lastReset: Date;
192
+ readonly currentUsagePeriod: import("./schemas.cjs").components["schemas"]["Period"];
193
+ readonly measureUsageFrom: Date;
194
+ readonly usagePeriod: import("./schemas.cjs").components["schemas"]["RecurringPeriod"];
195
+ } | {
196
+ type: "static";
197
+ config: string;
198
+ readonly createdAt: Date;
199
+ readonly updatedAt: Date;
200
+ readonly deletedAt?: Date;
201
+ metadata?: import("./schemas.cjs").components["schemas"]["Metadata"];
202
+ activeFrom: Date;
203
+ activeTo?: Date;
204
+ readonly id: string;
205
+ subjectKey: string;
206
+ featureKey: string;
207
+ featureId: string;
208
+ currentUsagePeriod?: import("./schemas.cjs").components["schemas"]["Period"];
209
+ usagePeriod?: import("./schemas.cjs").components["schemas"]["RecurringPeriod"];
210
+ } | ({
211
+ type: "boolean";
212
+ readonly createdAt: Date;
213
+ readonly updatedAt: Date;
214
+ readonly deletedAt?: Date;
215
+ metadata?: import("./schemas.cjs").components["schemas"]["Metadata"];
216
+ activeFrom: Date;
217
+ activeTo?: Date;
218
+ readonly id: string;
219
+ subjectKey: string;
220
+ featureKey: string;
221
+ featureId: string;
222
+ currentUsagePeriod?: import("./schemas.cjs").components["schemas"]["Period"];
223
+ usagePeriod?: import("./schemas.cjs").components["schemas"]["RecurringPeriod"];
224
+ } & {
225
+ readonly createdAt: Date;
226
+ readonly updatedAt: Date;
227
+ readonly deletedAt?: Date;
228
+ metadata?: import("./schemas.cjs").components["schemas"]["Metadata"];
229
+ activeFrom: Date;
230
+ activeTo?: Date;
231
+ readonly id: string;
232
+ type: import("./schemas.cjs").components["schemas"]["EntitlementType"];
233
+ subjectKey: string;
234
+ featureKey: string;
235
+ featureId: string;
236
+ currentUsagePeriod?: import("./schemas.cjs").components["schemas"]["Period"];
237
+ usagePeriod?: import("./schemas.cjs").components["schemas"]["RecurringPeriod"];
238
+ } & {
239
+ readonly id: string;
240
+ readonly createdAt: Date;
241
+ readonly updatedAt: Date;
242
+ type: import("./schemas.cjs").components["schemas"]["EntitlementType"];
243
+ activeFrom: Date;
244
+ subjectKey: string;
245
+ featureKey: string;
246
+ featureId: string;
247
+ }))[]>;
248
+ /**
249
+ * Delete an entitlement
250
+ *
251
+ * @param subjectIdOrKey - The ID or key of the subject
252
+ * @param entitlementId - The ID of the entitlement
253
+ * @param signal - An optional abort signal
254
+ * @returns The deleted entitlement
255
+ */
256
+ delete(subjectIdOrKey: operations['deleteEntitlement']['parameters']['path']['subjectIdOrKey'], entitlementId: operations['deleteEntitlement']['parameters']['path']['entitlementId'], options?: RequestOptions): Promise<undefined>;
257
+ /**
258
+ * Get the value of an entitlement to check access
259
+ * All entitlement types share the hasAccess property in their value response, but multiple other properties are returned based on the entitlement type.
260
+ *
261
+ * @param subjectIdOrKey - The ID or key of the subject
262
+ * @param entitlementIdOrFeatureKey - The ID or feature key of the entitlement
263
+ * @param query - The query parameters
264
+ * @param signal - An optional abort signal
265
+ * @returns The entitlement value
266
+ */
267
+ value(subjectIdOrKey: operations['getEntitlementValue']['parameters']['path']['subjectIdOrKey'], entitlementIdOrFeatureKey: operations['getEntitlementValue']['parameters']['path']['entitlementIdOrFeatureKey'], query?: operations['getEntitlementValue']['parameters']['query'], options?: RequestOptions): Promise<{
268
+ readonly hasAccess: boolean;
269
+ readonly balance?: number;
270
+ readonly usage?: number;
271
+ readonly overage?: number;
272
+ readonly config?: string;
273
+ }>;
274
+ /**
275
+ * Get the history of an entitlement
276
+ * Returns historical balance and usage data for the entitlement. The queried history can span accross multiple reset events.
277
+ *
278
+ * @param subjectIdOrKey - The ID or key of the subject
279
+ * @param entitlementId - The ID of the entitlement
280
+ * @param query - The query parameters
281
+ * @param signal - An optional abort signal
282
+ * @returns The history of the entitlement
283
+ */
284
+ history(subjectIdOrKey: operations['getEntitlementHistory']['parameters']['path']['subjectIdOrKey'], entitlementId: operations['getEntitlementHistory']['parameters']['path']['entitlementId'], query: operations['getEntitlementHistory']['parameters']['query'], options?: RequestOptions): Promise<{
285
+ windowedHistory: import("./schemas.cjs").components["schemas"]["BalanceHistoryWindow"][];
286
+ burndownHistory: import("./schemas.cjs").components["schemas"]["GrantBurnDownHistorySegment"][];
287
+ }>;
288
+ /**
289
+ * Override an entitlement
290
+ * This is useful for upgrades, downgrades, or other changes to entitlements that require a new entitlement to be created with zero downtime.
291
+ *
292
+ * @param subjectIdOrKey - The ID or key of the subject
293
+ * @param entitlementIdOrFeatureKey - The ID or feature key of the entitlement
294
+ * @param override - The override to create
295
+ * @param signal - An optional abort signal
296
+ * @returns The overridden entitlement
297
+ */
298
+ override(subjectIdOrKey: operations['overrideEntitlement']['parameters']['path']['subjectIdOrKey'], entitlementIdOrFeatureKey: operations['overrideEntitlement']['parameters']['path']['entitlementIdOrFeatureKey'], override: EntitlementCreateInputs, options?: RequestOptions): Promise<import("openapi-typescript-helpers").SuccessResponse<{
299
+ 201: {
300
+ headers: {
301
+ [name: string]: unknown;
302
+ };
303
+ content: {
304
+ "application/json": import("./schemas.cjs").components["schemas"]["Entitlement"];
305
+ };
306
+ };
307
+ 400: {
308
+ headers: {
309
+ [name: string]: unknown;
310
+ };
311
+ content: {
312
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["BadRequestProblemResponse"];
313
+ };
314
+ };
315
+ 401: {
316
+ headers: {
317
+ [name: string]: unknown;
318
+ };
319
+ content: {
320
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["UnauthorizedProblemResponse"];
321
+ };
322
+ };
323
+ 403: {
324
+ headers: {
325
+ [name: string]: unknown;
326
+ };
327
+ content: {
328
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["ForbiddenProblemResponse"];
329
+ };
330
+ };
331
+ 404: {
332
+ headers: {
333
+ [name: string]: unknown;
334
+ };
335
+ content: {
336
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["NotFoundProblemResponse"];
337
+ };
338
+ };
339
+ 409: {
340
+ headers: {
341
+ [name: string]: unknown;
342
+ };
343
+ content: {
344
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["ConflictProblemResponse"];
345
+ };
346
+ };
347
+ 500: {
348
+ headers: {
349
+ [name: string]: unknown;
350
+ };
351
+ content: {
352
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["InternalServerErrorProblemResponse"];
353
+ };
354
+ };
355
+ 503: {
356
+ headers: {
357
+ [name: string]: unknown;
358
+ };
359
+ content: {
360
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["ServiceUnavailableProblemResponse"];
361
+ };
362
+ };
363
+ default: {
364
+ headers: {
365
+ [name: string]: unknown;
366
+ };
367
+ content: {
368
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["UnexpectedProblemResponse"];
369
+ };
370
+ };
371
+ }, `${string}/${string}`>>;
372
+ /**
373
+ * Reset entitlement usage
374
+ * - Reset marks the start of a new usage period for the entitlement and initiates grant rollover. At the start of a period usage is zerod out and grants are rolled over based on their rollover settings. It would typically be synced with the subjects billing period to enforce usage based on their subscription.
375
+ * - Usage is automatically reset for metered entitlements based on their usage period, but this endpoint allows to manually reset it at any time. When doing so the period anchor of the entitlement can be changed if needed.
376
+ *
377
+ * @param subjectIdOrKey - The ID or key of the subject
378
+ * @param entitlementId - The ID of the entitlement
379
+ * @param body - The body of the request
380
+ * @param signal - An optional abort signal
381
+ * @returns The reset entitlement
382
+ */
383
+ reset(subjectIdOrKey: operations['resetEntitlementUsage']['parameters']['path']['subjectIdOrKey'], entitlementId: operations['resetEntitlementUsage']['parameters']['path']['entitlementId'], body: ResetEntitlementUsageInput, options?: RequestOptions): Promise<undefined>;
384
+ }
385
+ export declare class Grants {
386
+ private client;
387
+ constructor(client: Client<paths, `${string}/${string}`>);
388
+ /**
389
+ /**
390
+ * Grant usage to a subject for an entitlement
391
+ *
392
+ * @param subjectIdOrKey - The ID or key of the subject
393
+ * @param entitlementIdOrFeatureKey - The ID or feature key of the entitlement
394
+ * @param grant - The grant to create
395
+ * @param signal - An optional abort signal
396
+ * @returns The created grant
397
+ */
398
+ create(subjectIdOrKey: operations['createGrant']['parameters']['path']['subjectIdOrKey'], entitlementIdOrFeatureKey: operations['createGrant']['parameters']['path']['entitlementIdOrFeatureKey'], grant: EntitlementGrantCreateInput, options?: RequestOptions): Promise<{
399
+ readonly createdAt: Date;
400
+ readonly updatedAt: Date;
401
+ readonly deletedAt?: Date;
402
+ amount: number;
403
+ priority?: number;
404
+ effectiveAt: Date;
405
+ expiration: import("./schemas.cjs").components["schemas"]["ExpirationPeriod"];
406
+ maxRolloverAmount?: number;
407
+ minRolloverAmount?: number;
408
+ metadata?: import("./schemas.cjs").components["schemas"]["Metadata"];
409
+ readonly id: string;
410
+ readonly entitlementId: string;
411
+ nextRecurrence?: Date;
412
+ readonly expiresAt?: Date;
413
+ voidedAt?: Date;
414
+ recurrence?: import("./schemas.cjs").components["schemas"]["RecurringPeriod"];
415
+ }>;
416
+ /**
417
+ * List grants for an entitlement
418
+ *
419
+ * @param subjectIdOrKey - The ID or key of the subject
420
+ * @param entitlementIdOrFeatureKey - The ID or feature key of the entitlement
421
+ * @param signal - An optional abort signal
422
+ * @returns The grants
423
+ */
424
+ list(subjectIdOrKey: operations['listEntitlementGrants']['parameters']['path']['subjectIdOrKey'], entitlementIdOrFeatureKey: operations['listEntitlementGrants']['parameters']['path']['entitlementIdOrFeatureKey'], query?: operations['listEntitlementGrants']['parameters']['query'], options?: RequestOptions): Promise<{
425
+ readonly createdAt: Date;
426
+ readonly updatedAt: Date;
427
+ readonly deletedAt?: Date;
428
+ amount: number;
429
+ priority?: number;
430
+ effectiveAt: Date;
431
+ expiration: import("./schemas.cjs").components["schemas"]["ExpirationPeriod"];
432
+ maxRolloverAmount?: number;
433
+ minRolloverAmount?: number;
434
+ metadata?: import("./schemas.cjs").components["schemas"]["Metadata"];
435
+ readonly id: string;
436
+ readonly entitlementId: string;
437
+ nextRecurrence?: Date;
438
+ readonly expiresAt?: Date;
439
+ voidedAt?: Date;
440
+ recurrence?: import("./schemas.cjs").components["schemas"]["RecurringPeriod"];
441
+ }[]>;
442
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entitlements.js","sourceRoot":"","sources":["../../../../src/client/entitlements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Events = void 0;
7
+ exports.setDefaultsForEvent = setDefaultsForEvent;
8
+ const crypto_1 = __importDefault(require("crypto"));
9
+ const utils_js_1 = require("./utils.cjs");
10
+ /**
11
+ * Events are used to track usage of your product or service.
12
+ * Events are processed asynchronously by the meters, so they may not be immediately available for querying.
13
+ */
14
+ class Events {
15
+ client;
16
+ constructor(client) {
17
+ this.client = client;
18
+ }
19
+ /**
20
+ * Ingests an event or batch of events
21
+ * @param events - The events to ingest
22
+ * @param signal - An optional abort signal
23
+ * @returns The ingested events
24
+ */
25
+ async ingest(events, options) {
26
+ const body = (Array.isArray(events) ? events : [events]).map(setDefaultsForEvent);
27
+ const resp = await this.client.POST('/api/v1/events', {
28
+ body,
29
+ headers: {
30
+ 'Content-Type': 'application/cloudevents-batch+json',
31
+ },
32
+ ...options,
33
+ });
34
+ return (0, utils_js_1.transformResponse)(resp);
35
+ }
36
+ /**
37
+ * List ingested events
38
+ * @param query - The query parameters
39
+ * @param signal - An optional abort signal
40
+ * @returns The events
41
+ */
42
+ async list(query, options) {
43
+ const resp = await this.client.GET('/api/v1/events', {
44
+ params: {
45
+ query,
46
+ },
47
+ ...options,
48
+ });
49
+ return (0, utils_js_1.transformResponse)(resp);
50
+ }
51
+ }
52
+ exports.Events = Events;
53
+ function setDefaultsForEvent(ev) {
54
+ return {
55
+ data: ev.data,
56
+ datacontenttype: ev.datacontenttype,
57
+ dataschema: ev.dataschema,
58
+ id: ev.id ?? crypto_1.default.randomUUID(),
59
+ source: ev.source ?? '@openmeter/sdk',
60
+ specversion: ev.specversion ?? '1.0',
61
+ subject: ev.subject,
62
+ time: ev.time,
63
+ type: ev.type,
64
+ };
65
+ }
66
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1,31 @@
1
+ import type { RequestOptions } from './common.cjs';
2
+ import type { operations, paths, Event } from './schemas.cjs';
3
+ import type { Client } from 'openapi-fetch';
4
+ /**
5
+ * Events are used to track usage of your product or service.
6
+ * Events are processed asynchronously by the meters, so they may not be immediately available for querying.
7
+ */
8
+ export declare class Events {
9
+ private client;
10
+ constructor(client: Client<paths, `${string}/${string}`>);
11
+ /**
12
+ * Ingests an event or batch of events
13
+ * @param events - The events to ingest
14
+ * @param signal - An optional abort signal
15
+ * @returns The ingested events
16
+ */
17
+ ingest(events: Event | Event[], options?: RequestOptions): Promise<undefined>;
18
+ /**
19
+ * List ingested events
20
+ * @param query - The query parameters
21
+ * @param signal - An optional abort signal
22
+ * @returns The events
23
+ */
24
+ list(query?: operations['listEvents']['parameters']['query'], options?: RequestOptions): Promise<{
25
+ event: import("./schemas.cjs").components["schemas"]["Event"];
26
+ validationError?: string;
27
+ ingestedAt: Date;
28
+ storedAt: Date;
29
+ }[]>;
30
+ }
31
+ export declare function setDefaultsForEvent(ev: Event): Event;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/client/events.ts"],"names":[],"mappings":";;;;;;AAwDA,kDAYC;AApED,oDAA2B;AAC3B,yCAA8C;AAK9C;;;GAGG;AACH,MAAa,MAAM;IACG;IAApB,YAAoB,MAA4C;QAA5C,WAAM,GAAN,MAAM,CAAsC;IAAG,CAAC;IAEpE;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,MAAuB,EAAE,OAAwB;QACnE,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAC1D,mBAAmB,CACpB,CAAA;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACpD,IAAI;YACJ,OAAO,EAAE;gBACP,cAAc,EAAE,oCAAoC;aACrD;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,IAAI,CACf,KAAuD,EACvD,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE;YACnD,MAAM,EAAE;gBACN,KAAK;aACN;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;CACF;AA5CD,wBA4CC;AAED,SAAgB,mBAAmB,CAAC,EAAS;IAC3C,OAAO;QACL,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,eAAe,EAAE,EAAE,CAAC,eAAe;QACnC,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,gBAAM,CAAC,UAAU,EAAE;QAChC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,gBAAgB;QACrC,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,KAAK;QACpC,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,IAAI,EAAE,EAAE,CAAC,IAAI;KACd,CAAA;AACH,CAAC"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Features = void 0;
4
+ const utils_js_1 = require("./utils.cjs");
5
+ /**
6
+ * Features
7
+ * @description Features are the building blocks of your application. They represent the capabilities or services that your application offers.
8
+ */
9
+ class Features {
10
+ client;
11
+ constructor(client) {
12
+ this.client = client;
13
+ }
14
+ /**
15
+ * Create a feature
16
+ * @param feature - The feature to create
17
+ * @param signal - An optional abort signal
18
+ * @returns The created feature
19
+ */
20
+ async create(feature, options) {
21
+ const resp = await this.client.POST('/api/v1/features', {
22
+ body: feature,
23
+ ...options,
24
+ });
25
+ return (0, utils_js_1.transformResponse)(resp);
26
+ }
27
+ /**
28
+ * Get a feature by ID
29
+ * @param id - The ID of the feature
30
+ * @param signal - An optional abort signal
31
+ * @returns The feature
32
+ */
33
+ async get(id, options) {
34
+ const resp = await this.client.GET('/api/v1/features/{featureId}', {
35
+ params: {
36
+ path: {
37
+ featureId: id,
38
+ },
39
+ },
40
+ ...options,
41
+ });
42
+ return (0, utils_js_1.transformResponse)(resp);
43
+ }
44
+ /**
45
+ * List features
46
+ * @param query - The query parameters
47
+ * @param signal - An optional abort signal
48
+ * @returns The features
49
+ */
50
+ async list(query, options) {
51
+ const resp = await this.client.GET('/api/v1/features', {
52
+ params: {
53
+ query,
54
+ },
55
+ ...options,
56
+ });
57
+ return (0, utils_js_1.transformResponse)(resp);
58
+ }
59
+ /**
60
+ * Delete a feature by ID
61
+ * @param id - The ID of the feature
62
+ * @param signal - An optional abort signal
63
+ * @returns The deleted feature
64
+ */
65
+ async delete(id, options) {
66
+ const resp = await this.client.DELETE('/api/v1/features/{featureId}', {
67
+ params: {
68
+ path: {
69
+ featureId: id,
70
+ },
71
+ },
72
+ ...options,
73
+ });
74
+ return (0, utils_js_1.transformResponse)(resp);
75
+ }
76
+ }
77
+ exports.Features = Features;
78
+ //# sourceMappingURL=features.js.map