@openmeter/sdk 1.0.0-beta.185 → 1.0.0-beta.188

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 (199) hide show
  1. package/README.md +38 -309
  2. package/dist/cjs/index.cjs +1 -34
  3. package/dist/cjs/index.d.cts +1 -24
  4. package/dist/cjs/index.js.map +1 -1
  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 +145 -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/{clients/pagination.cjs → src/client/schemas.cjs} +1 -1
  42. package/dist/cjs/src/client/schemas.d.cts +17247 -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.2ca900e0.tsbuildinfo +1 -0
  60. package/dist/cjs/tsconfig.7693db96.tsbuildinfo +1 -0
  61. package/dist/index.d.ts +1 -24
  62. package/dist/index.js +1 -30
  63. package/dist/index.js.map +1 -1
  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 +145 -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 +17247 -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 +54 -24
  120. package/patches/openapi-typescript.patch +73 -0
  121. package/dist/cjs/clients/client.cjs +0 -120
  122. package/dist/cjs/clients/client.d.cts +0 -37
  123. package/dist/cjs/clients/client.js.map +0 -1
  124. package/dist/cjs/clients/entitlement.cjs +0 -39
  125. package/dist/cjs/clients/entitlement.d.cts +0 -32
  126. package/dist/cjs/clients/entitlement.js.map +0 -1
  127. package/dist/cjs/clients/event.cjs +0 -71
  128. package/dist/cjs/clients/event.d.cts +0 -79
  129. package/dist/cjs/clients/event.js.map +0 -1
  130. package/dist/cjs/clients/feature.cjs +0 -80
  131. package/dist/cjs/clients/feature.d.cts +0 -46
  132. package/dist/cjs/clients/feature.js.map +0 -1
  133. package/dist/cjs/clients/grant.cjs +0 -41
  134. package/dist/cjs/clients/grant.d.cts +0 -24
  135. package/dist/cjs/clients/grant.js.map +0 -1
  136. package/dist/cjs/clients/meter.cjs +0 -83
  137. package/dist/cjs/clients/meter.d.cts +0 -79
  138. package/dist/cjs/clients/meter.js.map +0 -1
  139. package/dist/cjs/clients/notifications.cjs +0 -184
  140. package/dist/cjs/clients/notifications.d.cts +0 -101
  141. package/dist/cjs/clients/notifications.js.map +0 -1
  142. package/dist/cjs/clients/pagination.d.cts +0 -6
  143. package/dist/cjs/clients/pagination.js.map +0 -1
  144. package/dist/cjs/clients/portal.cjs +0 -41
  145. package/dist/cjs/clients/portal.d.cts +0 -22
  146. package/dist/cjs/clients/portal.js.map +0 -1
  147. package/dist/cjs/clients/subject.cjs +0 -269
  148. package/dist/cjs/clients/subject.d.cts +0 -142
  149. package/dist/cjs/clients/subject.js.map +0 -1
  150. package/dist/cjs/schemas/openapi.cjs +0 -7
  151. package/dist/cjs/schemas/openapi.d.cts +0 -3578
  152. package/dist/cjs/schemas/openapi.js.map +0 -1
  153. package/dist/cjs/test/agent.cjs +0 -485
  154. package/dist/cjs/test/agent.d.cts +0 -2
  155. package/dist/cjs/test/agent.js.map +0 -1
  156. package/dist/cjs/test/mocks.cjs +0 -153
  157. package/dist/cjs/test/mocks.d.cts +0 -25
  158. package/dist/cjs/test/mocks.js.map +0 -1
  159. package/dist/cjs/tsconfig.a1fc0bdc.tsbuildinfo +0 -1
  160. package/dist/cjs/tsconfig.b6c6ba95.tsbuildinfo +0 -1
  161. package/dist/clients/client.d.ts +0 -37
  162. package/dist/clients/client.js +0 -115
  163. package/dist/clients/client.js.map +0 -1
  164. package/dist/clients/entitlement.d.ts +0 -32
  165. package/dist/clients/entitlement.js +0 -35
  166. package/dist/clients/entitlement.js.map +0 -1
  167. package/dist/clients/event.d.ts +0 -79
  168. package/dist/clients/event.js +0 -64
  169. package/dist/clients/event.js.map +0 -1
  170. package/dist/clients/feature.d.ts +0 -46
  171. package/dist/clients/feature.js +0 -76
  172. package/dist/clients/feature.js.map +0 -1
  173. package/dist/clients/grant.d.ts +0 -24
  174. package/dist/clients/grant.js +0 -37
  175. package/dist/clients/grant.js.map +0 -1
  176. package/dist/clients/meter.d.ts +0 -79
  177. package/dist/clients/meter.js +0 -79
  178. package/dist/clients/meter.js.map +0 -1
  179. package/dist/clients/notifications.d.ts +0 -101
  180. package/dist/clients/notifications.js +0 -180
  181. package/dist/clients/notifications.js.map +0 -1
  182. package/dist/clients/pagination.d.ts +0 -6
  183. package/dist/clients/pagination.js +0 -2
  184. package/dist/clients/pagination.js.map +0 -1
  185. package/dist/clients/portal.d.ts +0 -22
  186. package/dist/clients/portal.js +0 -37
  187. package/dist/clients/portal.js.map +0 -1
  188. package/dist/clients/subject.d.ts +0 -142
  189. package/dist/clients/subject.js +0 -265
  190. package/dist/clients/subject.js.map +0 -1
  191. package/dist/schemas/openapi.d.ts +0 -3578
  192. package/dist/schemas/openapi.js +0 -6
  193. package/dist/schemas/openapi.js.map +0 -1
  194. package/dist/test/agent.d.ts +0 -2
  195. package/dist/test/agent.js +0 -482
  196. package/dist/test/agent.js.map +0 -1
  197. package/dist/test/mocks.d.ts +0 -25
  198. package/dist/test/mocks.js +0 -150
  199. package/dist/test/mocks.js.map +0 -1
@@ -1,64 +0,0 @@
1
- import crypto from 'crypto';
2
- import { BaseClient } from './client.js';
3
- export class EventsClient extends BaseClient {
4
- constructor(config) {
5
- super(config);
6
- }
7
- /**
8
- * Ingest usage event in a CloudEvents format
9
- * @see https://cloudevents.io
10
- */
11
- async ingest(usageEvent, options) {
12
- const isBatch = Array.isArray(usageEvent);
13
- const cloudEvents = (isBatch ? usageEvent : [usageEvent]).map((ev) => {
14
- // Validate content type
15
- if (ev.datacontenttype && ev.datacontenttype !== 'application/json') {
16
- throw new TypeError(`Unsupported datacontenttype: ${ev.datacontenttype}`);
17
- }
18
- // We default where we can to lower the barrier to use CloudEvents
19
- const cloudEvent = {
20
- specversion: ev.specversion ?? '1.0',
21
- id: ev.id ?? crypto.randomUUID(),
22
- source: ev.source ?? '@openmeter/sdk',
23
- type: ev.type,
24
- subject: ev.subject,
25
- time: ev.time?.toISOString(),
26
- datacontenttype: ev.datacontenttype,
27
- dataschema: ev.dataschema,
28
- data: ev.data,
29
- };
30
- return cloudEvent;
31
- });
32
- const contentType = isBatch
33
- ? 'application/cloudevents-batch+json'
34
- : 'application/cloudevents+json';
35
- const body = isBatch
36
- ? JSON.stringify(cloudEvents)
37
- : JSON.stringify(cloudEvents[0]);
38
- // Making Request
39
- return await this.request({
40
- path: '/api/v1/events',
41
- method: 'POST',
42
- body,
43
- headers: {
44
- 'Content-Type': contentType,
45
- },
46
- options,
47
- });
48
- }
49
- /**
50
- * List raw events
51
- */
52
- async list(params, options) {
53
- const searchParams = params
54
- ? BaseClient.toURLSearchParams(params)
55
- : undefined;
56
- return this.request({
57
- method: 'GET',
58
- path: `/api/v1/events`,
59
- searchParams,
60
- options,
61
- });
62
- }
63
- }
64
- //# sourceMappingURL=event.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event.js","sourceRoot":"","sources":["../../clients/event.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,OAAO,EAAkB,UAAU,EAAmB,MAAM,aAAa,CAAA;AAuEzE,MAAM,OAAO,YAAa,SAAQ,UAAU;IAC1C,YAAY,MAAuB;QACjC,KAAK,CAAC,MAAM,CAAC,CAAA;IACf,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,MAAM,CACjB,UAA2B,EAC3B,OAAwB;QAExB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACzC,MAAM,WAAW,GAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CACzE,CAAC,EAAE,EAAE,EAAE;YACL,wBAAwB;YACxB,IAAI,EAAE,CAAC,eAAe,IAAI,EAAE,CAAC,eAAe,KAAK,kBAAkB,EAAE,CAAC;gBACpE,MAAM,IAAI,SAAS,CACjB,gCAAgC,EAAE,CAAC,eAAe,EAAE,CACrD,CAAA;YACH,CAAC;YAED,kEAAkE;YAClE,MAAM,UAAU,GAAe;gBAC7B,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,KAAK;gBACpC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE;gBAChC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,gBAAgB;gBACrC,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE;gBAC5B,eAAe,EAAE,EAAE,CAAC,eAAe;gBACnC,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,IAAI,EAAE,EAAE,CAAC,IAAI;aACd,CAAA;YAED,OAAO,UAAU,CAAA;QACnB,CAAC,CACF,CAAA;QAED,MAAM,WAAW,GAAG,OAAO;YACzB,CAAC,CAAC,oCAAoC;YACtC,CAAC,CAAC,8BAA8B,CAAA;QAClC,MAAM,IAAI,GAAG,OAAO;YAClB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;YAC7B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;QAElC,iBAAiB;QACjB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,OAAO,EAAE;gBACP,cAAc,EAAE,WAAW;aAC5B;YACD,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAI,CACf,MAA0B,EAC1B,OAAwB;QAExB,MAAM,YAAY,GAAG,MAAM;YACzB,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,SAAS,CAAA;QACb,OAAO,IAAI,CAAC,OAAO,CAAkB;YACnC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,gBAAgB;YACtB,YAAY;YACZ,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;CACF"}
@@ -1,46 +0,0 @@
1
- import { components, operations } from '../schemas/openapi.js';
2
- import { RequestOptions, BaseClient, OpenMeterConfig } from './client.js';
3
- import { Paginated } from './pagination.js';
4
- export type Feature = components['schemas']['Feature'];
5
- export type FeatureCreateInputs = components['schemas']['FeatureCreateInputs'];
6
- export type ListFeatureQueryParams = operations['listFeatures']['parameters']['query'];
7
- export declare class FeatureClient extends BaseClient {
8
- constructor(config: OpenMeterConfig);
9
- /**
10
- * Features are the building blocks of your entitlements, part of your product offering.
11
- * @description
12
- * Features are either metered or static. A feature is metered if meterSlug is provided at creation. For metered features you can pass additional filters that will be applied when calculating feature usage, based on the meter's groupBy fields. Only meters with SUM and COUNT aggregation are supported for features.
13
- *
14
- * Features cannot be updated later, only archived.
15
- *
16
- * @example
17
- * const feature = await openmeter.features.create({
18
- * key: 'ai_tokens',
19
- * name: 'AI Tokens',
20
- * // optional
21
- * meterSlug: 'tokens_total',
22
- * })
23
- */
24
- create(input: FeatureCreateInputs, options?: RequestOptions): Promise<Feature>;
25
- /**
26
- * Get Feature
27
- *
28
- * @example
29
- * const feature = await openmeter.features.get('ai_tokens')
30
- */
31
- get(id: string, options?: RequestOptions): Promise<Feature>;
32
- /**
33
- * List features
34
- * @example
35
- * const feature = await openmeter.features.list()
36
- */
37
- list(params?: ListFeatureQueryParams, options?: RequestOptions): Promise<Feature[] | Paginated<Feature>>;
38
- /**
39
- * Archive a feature
40
- * @description
41
- * Once a feature is archived it cannot be unarchived. If a feature is archived, new entitlements cannot be created for it, but archiving the feature does not affect existing entitlements.
42
- * @example
43
- * await openmeter.delete('ai_tokens')
44
- */
45
- delete(id: string, options?: RequestOptions): Promise<void>;
46
- }
@@ -1,76 +0,0 @@
1
- import { BaseClient } from './client.js';
2
- export class FeatureClient extends BaseClient {
3
- constructor(config) {
4
- super(config);
5
- }
6
- /**
7
- * Features are the building blocks of your entitlements, part of your product offering.
8
- * @description
9
- * Features are either metered or static. A feature is metered if meterSlug is provided at creation. For metered features you can pass additional filters that will be applied when calculating feature usage, based on the meter's groupBy fields. Only meters with SUM and COUNT aggregation are supported for features.
10
- *
11
- * Features cannot be updated later, only archived.
12
- *
13
- * @example
14
- * const feature = await openmeter.features.create({
15
- * key: 'ai_tokens',
16
- * name: 'AI Tokens',
17
- * // optional
18
- * meterSlug: 'tokens_total',
19
- * })
20
- */
21
- async create(input, options) {
22
- return await this.request({
23
- path: '/api/v1/features',
24
- method: 'POST',
25
- headers: {
26
- 'Content-Type': 'application/json',
27
- },
28
- body: JSON.stringify(input),
29
- options,
30
- });
31
- }
32
- /**
33
- * Get Feature
34
- *
35
- * @example
36
- * const feature = await openmeter.features.get('ai_tokens')
37
- */
38
- async get(id, options) {
39
- return await this.request({
40
- path: `/api/v1/features/${id}`,
41
- method: 'GET',
42
- options,
43
- });
44
- }
45
- /**
46
- * List features
47
- * @example
48
- * const feature = await openmeter.features.list()
49
- */
50
- async list(params, options) {
51
- const searchParams = params
52
- ? BaseClient.toURLSearchParams(params)
53
- : undefined;
54
- return await this.request({
55
- path: '/api/v1/features',
56
- method: 'GET',
57
- searchParams,
58
- options,
59
- });
60
- }
61
- /**
62
- * Archive a feature
63
- * @description
64
- * Once a feature is archived it cannot be unarchived. If a feature is archived, new entitlements cannot be created for it, but archiving the feature does not affect existing entitlements.
65
- * @example
66
- * await openmeter.delete('ai_tokens')
67
- */
68
- async delete(id, options) {
69
- return await this.request({
70
- path: `/api/v1/features/${id}`,
71
- method: 'DELETE',
72
- options,
73
- });
74
- }
75
- }
76
- //# sourceMappingURL=feature.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feature.js","sourceRoot":"","sources":["../../clients/feature.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,UAAU,EAAmB,MAAM,aAAa,CAAA;AAQzE,MAAM,OAAO,aAAc,SAAQ,UAAU;IAC3C,YAAY,MAAuB;QACjC,KAAK,CAAC,MAAM,CAAC,CAAA;IACf,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACI,KAAK,CAAC,MAAM,CACjB,KAA0B,EAC1B,OAAwB;QAExB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC3B,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,OAAwB;QACnD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,oBAAoB,EAAE,EAAE;YAC9B,MAAM,EAAE,KAAK;YACb,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,IAAI,CACf,MAA+B,EAC/B,OAAwB;QAExB,MAAM,YAAY,GAAG,MAAM;YACzB,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,SAAS,CAAA;QACb,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,KAAK;YACb,YAAY;YACZ,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,OAAwB;QACtD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,oBAAoB,EAAE,EAAE;YAC9B,MAAM,EAAE,QAAQ;YAChB,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;CACF"}
@@ -1,24 +0,0 @@
1
- import { components, operations } from '../schemas/openapi.js';
2
- import { RequestOptions, BaseClient, OpenMeterConfig } from './client.js';
3
- import { Paginated } from './pagination.js';
4
- export type EntitlementGrant = components['schemas']['EntitlementGrant'];
5
- export type EntitlementGrantCreateInput = components['schemas']['EntitlementGrantCreateInput'];
6
- export type ListGrantQueryParams = operations['listGrants']['parameters']['query'];
7
- export type ListEntitlementGrantQueryParams = operations['listEntitlementGrants']['parameters']['query'];
8
- export declare class GrantClient extends BaseClient {
9
- constructor(config: OpenMeterConfig);
10
- /**
11
- * List grants
12
- * @example
13
- * const grant = await openmeter.grants.list()
14
- */
15
- list(params?: ListGrantQueryParams, options?: RequestOptions): Promise<EntitlementGrant[] | Paginated<EntitlementGrant>>;
16
- /**
17
- * Void a grant
18
- * @description
19
- * Voiding a grant means it is no longer valid, it doesn't take part in further balance calculations. Voiding a grant does not retroactively take effect, meaning any usage that has already been attributed to the grant will remain, but future usage cannot be burnt down from the grant.
20
- * @example
21
- * const grant = await openmeter.grants.list()
22
- */
23
- delete(id: string, options?: RequestOptions): Promise<EntitlementGrant[]>;
24
- }
@@ -1,37 +0,0 @@
1
- import { BaseClient } from './client.js';
2
- export class GrantClient extends BaseClient {
3
- constructor(config) {
4
- super(config);
5
- }
6
- /**
7
- * List grants
8
- * @example
9
- * const grant = await openmeter.grants.list()
10
- */
11
- async list(params, options) {
12
- const searchParams = params
13
- ? BaseClient.toURLSearchParams(params)
14
- : undefined;
15
- return await this.request({
16
- path: '/api/v1/grants',
17
- method: 'GET',
18
- searchParams,
19
- options,
20
- });
21
- }
22
- /**
23
- * Void a grant
24
- * @description
25
- * Voiding a grant means it is no longer valid, it doesn't take part in further balance calculations. Voiding a grant does not retroactively take effect, meaning any usage that has already been attributed to the grant will remain, but future usage cannot be burnt down from the grant.
26
- * @example
27
- * const grant = await openmeter.grants.list()
28
- */
29
- async delete(id, options) {
30
- return await this.request({
31
- method: 'DELETE',
32
- path: `/api/v1/grants/${id}`,
33
- options,
34
- });
35
- }
36
- }
37
- //# sourceMappingURL=grant.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grant.js","sourceRoot":"","sources":["../../clients/grant.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,UAAU,EAAmB,MAAM,aAAa,CAAA;AAWzE,MAAM,OAAO,WAAY,SAAQ,UAAU;IACzC,YAAY,MAAuB;QACjC,KAAK,CAAC,MAAM,CAAC,CAAA;IACf,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,IAAI,CACf,MAA6B,EAC7B,OAAwB;QAExB,MAAM,YAAY,GAAG,MAAM;YACzB,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,SAAS,CAAA;QACb,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,KAAK;YACb,YAAY;YACZ,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,MAAM,CACjB,EAAU,EACV,OAAwB;QAExB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,kBAAkB,EAAE,EAAE;YAC5B,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;CACF"}
@@ -1,79 +0,0 @@
1
- import { paths, components } from '../schemas/openapi.js';
2
- import { BaseClient, OpenMeterConfig, RequestOptions } from './client.js';
3
- export declare enum WindowSize {
4
- MINUTE = "MINUTE",
5
- HOUR = "HOUR",
6
- DAY = "DAY"
7
- }
8
- export declare enum MeterAggregation {
9
- SUM = "SUM",
10
- COUNT = "COUNT",
11
- AVG = "AVG",
12
- MIN = "MIN",
13
- MAX = "MAX"
14
- }
15
- export type MeterQueryParams = {
16
- /**
17
- * @description Subject(s) to filter by.
18
- * @example ["customer-1", "customer-2"]
19
- */
20
- subject?: string[];
21
- /**
22
- * @description Start date.
23
- * Must be aligned with the window size.
24
- * Inclusive.
25
- */
26
- from?: Date;
27
- /**
28
- * @description End date.
29
- * Must be aligned with the window size.
30
- * Inclusive.
31
- */
32
- to?: Date;
33
- /**
34
- * @description Window Size
35
- * If not specified, a single usage aggregate will be returned for the entirety of
36
- * the specified period for each subject and group.
37
- */
38
- windowSize?: WindowSizeType;
39
- /**
40
- * @description The value is the name of the time zone as defined in the IANA Time Zone Database (http://www.iana.org/time-zones).
41
- * If not specified, the UTC timezone will be used.
42
- */
43
- windowTimeZone?: string;
44
- /**
45
- * @description Group By
46
- * If not specified a single aggregate will be returned for each subject and time window.
47
- */
48
- groupBy?: string[];
49
- /**
50
- * @description Filter by group by
51
- */
52
- filterGroupBy?: Record<string, string>;
53
- };
54
- export type MeterQueryResponse = paths['/api/v1/meters/{meterIdOrSlug}/query']['get']['responses']['200']['content']['application/json'];
55
- export type Meter = components['schemas']['Meter'];
56
- export type WindowSizeType = components['schemas']['WindowSize'];
57
- export declare class MetersClient extends BaseClient {
58
- constructor(config: OpenMeterConfig);
59
- /**
60
- * Create a meter
61
- */
62
- create(meter: Meter, options?: RequestOptions): Promise<Meter>;
63
- /**
64
- * Get one meter by slug
65
- */
66
- get(slug: string, options?: RequestOptions): Promise<Meter>;
67
- /**
68
- * List meters
69
- */
70
- list(options?: RequestOptions): Promise<Meter[]>;
71
- /**
72
- * Query a meter
73
- */
74
- query(slug: string, params?: MeterQueryParams, options?: RequestOptions): Promise<MeterQueryResponse>;
75
- /**
76
- * List subjects of a meter
77
- */
78
- subjects(slug: string, options?: RequestOptions): Promise<string[]>;
79
- }
@@ -1,79 +0,0 @@
1
- import { BaseClient } from './client.js';
2
- export var WindowSize;
3
- (function (WindowSize) {
4
- WindowSize["MINUTE"] = "MINUTE";
5
- WindowSize["HOUR"] = "HOUR";
6
- WindowSize["DAY"] = "DAY";
7
- })(WindowSize || (WindowSize = {}));
8
- export var MeterAggregation;
9
- (function (MeterAggregation) {
10
- MeterAggregation["SUM"] = "SUM";
11
- MeterAggregation["COUNT"] = "COUNT";
12
- MeterAggregation["AVG"] = "AVG";
13
- MeterAggregation["MIN"] = "MIN";
14
- MeterAggregation["MAX"] = "MAX";
15
- })(MeterAggregation || (MeterAggregation = {}));
16
- export class MetersClient extends BaseClient {
17
- constructor(config) {
18
- super(config);
19
- }
20
- /**
21
- * Create a meter
22
- */
23
- async create(meter, options) {
24
- return this.request({
25
- method: 'POST',
26
- path: `/api/v1/meters`,
27
- headers: {
28
- 'Content-Type': 'application/json',
29
- },
30
- body: JSON.stringify(meter),
31
- options,
32
- });
33
- }
34
- /**
35
- * Get one meter by slug
36
- */
37
- async get(slug, options) {
38
- return this.request({
39
- method: 'GET',
40
- path: `/api/v1/meters/${slug}`,
41
- options,
42
- });
43
- }
44
- /**
45
- * List meters
46
- */
47
- async list(options) {
48
- return this.request({
49
- method: 'GET',
50
- path: `/api/v1/meters`,
51
- options,
52
- });
53
- }
54
- /**
55
- * Query a meter
56
- */
57
- async query(slug, params, options) {
58
- const searchParams = params
59
- ? BaseClient.toURLSearchParams(params)
60
- : undefined;
61
- return this.request({
62
- method: 'GET',
63
- path: `/api/v1/meters/${slug}/query`,
64
- searchParams,
65
- options,
66
- });
67
- }
68
- /**
69
- * List subjects of a meter
70
- */
71
- async subjects(slug, options) {
72
- return this.request({
73
- method: 'GET',
74
- path: `/api/v1/meters/${slug}/subjects`,
75
- options,
76
- });
77
- }
78
- }
79
- //# sourceMappingURL=meter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"meter.js","sourceRoot":"","sources":["../../clients/meter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAmC,MAAM,aAAa,CAAA;AAEzE,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,+BAAiB,CAAA;IACjB,2BAAa,CAAA;IACb,yBAAW,CAAA;AACb,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAED,MAAM,CAAN,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,+BAAW,CAAA;IACX,mCAAe,CAAA;IACf,+BAAW,CAAA;IACX,+BAAW,CAAA;IACX,+BAAW,CAAA;AACb,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,QAM3B;AAgDD,MAAM,OAAO,YAAa,SAAQ,UAAU;IAC1C,YAAY,MAAuB;QACjC,KAAK,CAAC,MAAM,CAAC,CAAA;IACf,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,MAAM,CAAC,KAAY,EAAE,OAAwB;QACxD,OAAO,IAAI,CAAC,OAAO,CAAQ;YACzB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC3B,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,OAAwB;QACrD,OAAO,IAAI,CAAC,OAAO,CAAQ;YACzB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,kBAAkB,IAAI,EAAE;YAC9B,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAI,CAAC,OAAwB;QACxC,OAAO,IAAI,CAAC,OAAO,CAAU;YAC3B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,gBAAgB;YACtB,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,KAAK,CAChB,IAAY,EACZ,MAAyB,EACzB,OAAwB;QAExB,MAAM,YAAY,GAAG,MAAM;YACzB,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,SAAS,CAAA;QACb,OAAO,IAAI,CAAC,OAAO,CAAqB;YACtC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,kBAAkB,IAAI,QAAQ;YACpC,YAAY;YACZ,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ,CACnB,IAAY,EACZ,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAW;YAC5B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,kBAAkB,IAAI,WAAW;YACvC,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;CACF"}
@@ -1,101 +0,0 @@
1
- import { components, operations } from '../schemas/openapi.js';
2
- import { RequestOptions, BaseClient, OpenMeterConfig } from './client.js';
3
- export type NotificationChannel = components['schemas']['NotificationChannel'];
4
- export type NotificationChannelCreateRequest = components['schemas']['NotificationChannelCreateRequest'];
5
- export type ListNotificationChannelsQueryParams = operations['listNotificationChannels']['parameters']['query'];
6
- export type NotificationChannelsResponse = components['schemas']['NotificationChannelsResponse'];
7
- export type NotificationRule = components['schemas']['NotificationRule'];
8
- export type NotificationRuleCreateRequest = components['schemas']['NotificationRuleCreateRequest'];
9
- export type ListNotificationRulesQueryParams = operations['listNotificationRules']['parameters']['query'];
10
- export type NotificationRulesResponse = components['schemas']['NotificationRulesResponse'];
11
- export type NotificationEvent = components['schemas']['NotificationEvent'];
12
- export type ListNotificationEventsQueryParams = operations['listNotificationEvents']['parameters']['query'];
13
- export type NotificationEventsResponse = components['schemas']['NotificationEventsResponse'];
14
- export declare class NotificationClient extends BaseClient {
15
- channels: NotificationChannelsClient;
16
- rules: NotificationRulesClient;
17
- events: NotificationEventsClient;
18
- constructor(config: OpenMeterConfig);
19
- }
20
- declare class NotificationChannelsClient extends BaseClient {
21
- constructor(config: OpenMeterConfig);
22
- /**
23
- * List notification channels.
24
- * @example
25
- * const channels = await openmeter.notification.channels.list()
26
- */
27
- list(params?: ListNotificationChannelsQueryParams, options?: RequestOptions): Promise<NotificationChannelsResponse>;
28
- /**
29
- * Get notification channel.
30
- * @example
31
- * const channel = await openmeter.notification.channels.get('01J5Z602369ZDS9J60N3DV7SGE')
32
- */
33
- get(id: string, options?: RequestOptions): Promise<NotificationChannel>;
34
- /**
35
- * Delete notification channel.
36
- * @example
37
- * await openmeter.notification.channels.delete('01J5Z602369ZDS9J60N3DV7SGE')
38
- */
39
- delete(id: string, options?: RequestOptions): Promise<void>;
40
- /**
41
- * Create notification channel.
42
- * @example
43
- * const channel = await openmeter.notification.channels.create({
44
- * type: 'WEBHOOK',
45
- * name: 'My webhook channel',
46
- * url: 'https://example.com/webhook',
47
- * customHeaders: {
48
- * 'User-Agent': 'OpenMeter'
49
- * },
50
- * })
51
- */
52
- create(body: NotificationChannelCreateRequest, options?: RequestOptions): Promise<NotificationChannel>;
53
- }
54
- declare class NotificationRulesClient extends BaseClient {
55
- constructor(config: OpenMeterConfig);
56
- /**
57
- * List notification rules.
58
- * @example
59
- * const rules = await openmeter.notification.rules.list()
60
- */
61
- list(params?: ListNotificationRulesQueryParams, options?: RequestOptions): Promise<NotificationRulesResponse>;
62
- /**
63
- * Get notification rule.
64
- * @example
65
- * const rule = await openmeter.notification.rules.get('01J5Z602369ZDS9J60N3DV7SGE')
66
- */
67
- get(id: string, options?: RequestOptions): Promise<NotificationChannel>;
68
- /**
69
- * Delete notification rule.
70
- * @example
71
- * await openmeter.notification.rules.delete('01J5Z602369ZDS9J60N3DV7SGE')
72
- */
73
- delete(id: string, options?: RequestOptions): Promise<void>;
74
- /**
75
- * Create notification rule.
76
- * @example
77
- * const rule = await openmeter.notification.rules.create({
78
- * type: 'entitlements.balance.threshold',
79
- * name: 'My rule',
80
- * channels: ['01J5Z602369ZDS9J60N3DV7SGE'],
81
- * thresholds: [{ value: 90, type: 'PERCENT' }],
82
- * })
83
- */
84
- create(body: NotificationRuleCreateRequest, options?: RequestOptions): Promise<NotificationChannel>;
85
- }
86
- declare class NotificationEventsClient extends BaseClient {
87
- constructor(config: OpenMeterConfig);
88
- /**
89
- * List notification events.
90
- * @example
91
- * const events = await openmeter.notification.events.list()
92
- */
93
- list(params?: ListNotificationEventsQueryParams, options?: RequestOptions): Promise<NotificationEventsResponse>;
94
- /**
95
- * Get notification event.
96
- * @example
97
- * const event = await openmeter.notification.events.get('01J5Z602369ZDS9J60N3DV7SGE')
98
- */
99
- get(id: string, options?: RequestOptions): Promise<NotificationEvent>;
100
- }
101
- export {};