@devhelm/sdk 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/LICENSE +21 -0
  2. package/dist/client.d.ts +49 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +64 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/errors.d.ts +12 -0
  7. package/dist/errors.d.ts.map +1 -0
  8. package/dist/errors.js +45 -0
  9. package/dist/errors.js.map +1 -0
  10. package/dist/generated/api.d.ts +12010 -0
  11. package/dist/generated/api.d.ts.map +1 -0
  12. package/dist/generated/api.js +6 -0
  13. package/dist/generated/api.js.map +1 -0
  14. package/dist/http.d.ts +40 -0
  15. package/dist/http.d.ts.map +1 -0
  16. package/dist/http.js +115 -0
  17. package/dist/http.js.map +1 -0
  18. package/dist/index.d.ts +19 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +17 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/resources/alert-channels.d.ts +23 -0
  23. package/dist/resources/alert-channels.d.ts.map +1 -0
  24. package/dist/resources/alert-channels.js +40 -0
  25. package/dist/resources/alert-channels.js.map +1 -0
  26. package/dist/resources/api-keys.d.ts +17 -0
  27. package/dist/resources/api-keys.d.ts.map +1 -0
  28. package/dist/resources/api-keys.js +29 -0
  29. package/dist/resources/api-keys.js.map +1 -0
  30. package/dist/resources/dependencies.d.ts +15 -0
  31. package/dist/resources/dependencies.d.ts.map +1 -0
  32. package/dist/resources/dependencies.js +25 -0
  33. package/dist/resources/dependencies.js.map +1 -0
  34. package/dist/resources/deploy-lock.d.ts +15 -0
  35. package/dist/resources/deploy-lock.d.ts.map +1 -0
  36. package/dist/resources/deploy-lock.js +26 -0
  37. package/dist/resources/deploy-lock.js.map +1 -0
  38. package/dist/resources/environments.d.ts +19 -0
  39. package/dist/resources/environments.d.ts.map +1 -0
  40. package/dist/resources/environments.js +35 -0
  41. package/dist/resources/environments.js.map +1 -0
  42. package/dist/resources/incidents.d.ts +19 -0
  43. package/dist/resources/incidents.d.ts.map +1 -0
  44. package/dist/resources/incidents.js +36 -0
  45. package/dist/resources/incidents.js.map +1 -0
  46. package/dist/resources/monitors.d.ts +35 -0
  47. package/dist/resources/monitors.d.ts.map +1 -0
  48. package/dist/resources/monitors.js +58 -0
  49. package/dist/resources/monitors.js.map +1 -0
  50. package/dist/resources/notification-policies.d.ts +21 -0
  51. package/dist/resources/notification-policies.d.ts.map +1 -0
  52. package/dist/resources/notification-policies.js +39 -0
  53. package/dist/resources/notification-policies.js.map +1 -0
  54. package/dist/resources/resource-groups.d.ts +23 -0
  55. package/dist/resources/resource-groups.d.ts.map +1 -0
  56. package/dist/resources/resource-groups.js +43 -0
  57. package/dist/resources/resource-groups.js.map +1 -0
  58. package/dist/resources/secrets.d.ts +17 -0
  59. package/dist/resources/secrets.d.ts.map +1 -0
  60. package/dist/resources/secrets.js +30 -0
  61. package/dist/resources/secrets.js.map +1 -0
  62. package/dist/resources/status.d.ts +9 -0
  63. package/dist/resources/status.d.ts.map +1 -0
  64. package/dist/resources/status.js +13 -0
  65. package/dist/resources/status.js.map +1 -0
  66. package/dist/resources/tags.d.ts +19 -0
  67. package/dist/resources/tags.d.ts.map +1 -0
  68. package/dist/resources/tags.js +35 -0
  69. package/dist/resources/tags.js.map +1 -0
  70. package/dist/resources/webhooks.d.ts +23 -0
  71. package/dist/resources/webhooks.d.ts.map +1 -0
  72. package/dist/resources/webhooks.js +40 -0
  73. package/dist/resources/webhooks.js.map +1 -0
  74. package/dist/types.d.ts +60 -0
  75. package/dist/types.d.ts.map +1 -0
  76. package/dist/types.js +2 -0
  77. package/dist/types.js.map +1 -0
  78. package/package.json +58 -0
@@ -0,0 +1,35 @@
1
+ import type { ApiClient } from '../http.js';
2
+ import type { MonitorDto, CreateMonitorRequest, UpdateMonitorRequest, MonitorVersionDto, CheckResultDto, AssertionTestResultDto, Page, CursorPage } from '../types.js';
3
+ export declare class Monitors {
4
+ private readonly client;
5
+ constructor(client: ApiClient);
6
+ /** List all monitors (auto-paginates). */
7
+ list(): Promise<MonitorDto[]>;
8
+ /** List monitors with manual page control. */
9
+ listPage(page: number, size: number): Promise<Page<MonitorDto>>;
10
+ /** Get a single monitor by ID. */
11
+ get(id: string | number): Promise<MonitorDto>;
12
+ /** Create a new monitor. */
13
+ create(body: CreateMonitorRequest): Promise<MonitorDto>;
14
+ /** Update an existing monitor. */
15
+ update(id: string | number, body: UpdateMonitorRequest): Promise<MonitorDto>;
16
+ /** Delete a monitor. */
17
+ delete(id: string | number): Promise<void>;
18
+ /** Pause a monitor. */
19
+ pause(id: string | number): Promise<MonitorDto>;
20
+ /** Resume a paused monitor. */
21
+ resume(id: string | number): Promise<MonitorDto>;
22
+ /** Trigger an ad-hoc test run for a monitor. */
23
+ test(id: string | number): Promise<AssertionTestResultDto>;
24
+ /** List check results (cursor-paginated). */
25
+ results(id: string | number, options?: {
26
+ cursor?: string;
27
+ limit?: number;
28
+ }): Promise<CursorPage<CheckResultDto>>;
29
+ /** List monitor version history. */
30
+ versions(id: string | number, options?: {
31
+ page?: number;
32
+ size?: number;
33
+ }): Promise<Page<MonitorVersionDto>>;
34
+ }
35
+ //# sourceMappingURL=monitors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitors.d.ts","sourceRoot":"","sources":["../../src/resources/monitors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EACV,UAAU,EAAE,oBAAoB,EAAE,oBAAoB,EACtD,iBAAiB,EAAE,cAAc,EAAE,sBAAsB,EACzD,IAAI,EAAE,UAAU,EACjB,MAAM,aAAa,CAAA;AAGpB,qBAAa,QAAQ;IACP,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,SAAS;IAE9C,0CAA0C;IACpC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAInC,8CAA8C;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAIrE,kCAAkC;IAC5B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAKnD,4BAA4B;IACtB,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;IAK7D,kCAAkC;IAC5B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKlF,wBAAwB;IAClB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,uBAAuB;IACjB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAKrD,+BAA+B;IACzB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAKtD,gDAAgD;IAC1C,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAKhE,6CAA6C;IACvC,OAAO,CACX,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,OAAO,GAAE;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAM,GAC9C,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAItC,oCAAoC;IAC9B,QAAQ,CACZ,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,OAAO,GAAE;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAM,GAC3C,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;CAQpC"}
@@ -0,0 +1,58 @@
1
+ import { apiGet, apiPost, apiPut, apiDelete, fetchAllPages, fetchPage, fetchCursorPage, unwrapSingle } from '../http.js';
2
+ export class Monitors {
3
+ client;
4
+ constructor(client) {
5
+ this.client = client;
6
+ }
7
+ /** List all monitors (auto-paginates). */
8
+ async list() {
9
+ return fetchAllPages(this.client, '/api/v1/monitors');
10
+ }
11
+ /** List monitors with manual page control. */
12
+ async listPage(page, size) {
13
+ return fetchPage(this.client, '/api/v1/monitors', page, size);
14
+ }
15
+ /** Get a single monitor by ID. */
16
+ async get(id) {
17
+ const resp = await apiGet(this.client, `/api/v1/monitors/${id}`);
18
+ return unwrapSingle(resp);
19
+ }
20
+ /** Create a new monitor. */
21
+ async create(body) {
22
+ const resp = await apiPost(this.client, '/api/v1/monitors', body);
23
+ return unwrapSingle(resp);
24
+ }
25
+ /** Update an existing monitor. */
26
+ async update(id, body) {
27
+ const resp = await apiPut(this.client, `/api/v1/monitors/${id}`, body);
28
+ return unwrapSingle(resp);
29
+ }
30
+ /** Delete a monitor. */
31
+ async delete(id) {
32
+ await apiDelete(this.client, `/api/v1/monitors/${id}`);
33
+ }
34
+ /** Pause a monitor. */
35
+ async pause(id) {
36
+ const resp = await apiPost(this.client, `/api/v1/monitors/${id}/pause`);
37
+ return unwrapSingle(resp);
38
+ }
39
+ /** Resume a paused monitor. */
40
+ async resume(id) {
41
+ const resp = await apiPost(this.client, `/api/v1/monitors/${id}/resume`);
42
+ return unwrapSingle(resp);
43
+ }
44
+ /** Trigger an ad-hoc test run for a monitor. */
45
+ async test(id) {
46
+ const resp = await apiPost(this.client, `/api/v1/monitors/${id}/test`);
47
+ return unwrapSingle(resp);
48
+ }
49
+ /** List check results (cursor-paginated). */
50
+ async results(id, options = {}) {
51
+ return fetchCursorPage(this.client, `/api/v1/monitors/${id}/results`, options);
52
+ }
53
+ /** List monitor version history. */
54
+ async versions(id, options = {}) {
55
+ return fetchPage(this.client, `/api/v1/monitors/${id}/versions`, options.page ?? 0, options.size ?? 20);
56
+ }
57
+ }
58
+ //# sourceMappingURL=monitors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitors.js","sourceRoot":"","sources":["../../src/resources/monitors.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAC,MAAM,YAAY,CAAA;AAEtH,MAAM,OAAO,QAAQ;IACU;IAA7B,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAElD,0CAA0C;IAC1C,KAAK,CAAC,IAAI;QACR,OAAO,aAAa,CAAa,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IACnE,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,IAAY;QACvC,OAAO,SAAS,CAAa,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC3E,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,GAAG,CAAC,EAAmB;QAC3B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAsB,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAA;QACrF,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,4BAA4B;IAC5B,KAAK,CAAC,MAAM,CAAC,IAA0B;QACrC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAsB,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAA;QACtF,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,MAAM,CAAC,EAAmB,EAAE,IAA0B;QAC1D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAsB,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;QAC3F,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,wBAAwB;IACxB,KAAK,CAAC,MAAM,CAAC,EAAmB;QAC9B,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAA;IACxD,CAAC;IAED,uBAAuB;IACvB,KAAK,CAAC,KAAK,CAAC,EAAmB;QAC7B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAsB,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAA;QAC5F,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,+BAA+B;IAC/B,KAAK,CAAC,MAAM,CAAC,EAAmB;QAC9B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAsB,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAA;QAC7F,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,IAAI,CAAC,EAAmB;QAC5B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAkC,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAA;QACvG,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,OAAO,CACX,EAAmB,EACnB,UAA6C,EAAE;QAE/C,OAAO,eAAe,CAAiB,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAChG,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,QAAQ,CACZ,EAAmB,EACnB,UAA0C,EAAE;QAE5C,OAAO,SAAS,CACd,IAAI,CAAC,MAAM,EACX,oBAAoB,EAAE,WAAW,EACjC,OAAO,CAAC,IAAI,IAAI,CAAC,EACjB,OAAO,CAAC,IAAI,IAAI,EAAE,CACnB,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ import type { ApiClient } from '../http.js';
2
+ import type { NotificationPolicyDto, CreateNotificationPolicyRequest, UpdateNotificationPolicyRequest, Page } from '../types.js';
3
+ export declare class NotificationPolicies {
4
+ private readonly client;
5
+ constructor(client: ApiClient);
6
+ /** List all notification policies (auto-paginates). */
7
+ list(): Promise<NotificationPolicyDto[]>;
8
+ /** List notification policies with manual page control. */
9
+ listPage(page: number, size: number): Promise<Page<NotificationPolicyDto>>;
10
+ /** Get a single notification policy by ID. */
11
+ get(id: string | number): Promise<NotificationPolicyDto>;
12
+ /** Create a new notification policy. */
13
+ create(body: CreateNotificationPolicyRequest): Promise<NotificationPolicyDto>;
14
+ /** Update an existing notification policy. */
15
+ update(id: string | number, body: UpdateNotificationPolicyRequest): Promise<NotificationPolicyDto>;
16
+ /** Delete a notification policy. */
17
+ delete(id: string | number): Promise<void>;
18
+ /** Send a test dispatch to verify policy routing. */
19
+ test(id: string | number): Promise<void>;
20
+ }
21
+ //# sourceMappingURL=notification-policies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-policies.d.ts","sourceRoot":"","sources":["../../src/resources/notification-policies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EAAC,qBAAqB,EAAE,+BAA+B,EAAE,+BAA+B,EAAE,IAAI,EAAC,MAAM,aAAa,CAAA;AAG9H,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,SAAS;IAE9C,uDAAuD;IACjD,IAAI,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAI9C,2DAA2D;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAIhF,8CAA8C;IACxC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAK9D,wCAAwC;IAClC,MAAM,CAAC,IAAI,EAAE,+BAA+B,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAKnF,8CAA8C;IACxC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,+BAA+B,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAKxG,oCAAoC;IAC9B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,qDAAqD;IAC/C,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG/C"}
@@ -0,0 +1,39 @@
1
+ import { apiGet, apiPost, apiPut, apiDelete, fetchAllPages, fetchPage, unwrapSingle } from '../http.js';
2
+ export class NotificationPolicies {
3
+ client;
4
+ constructor(client) {
5
+ this.client = client;
6
+ }
7
+ /** List all notification policies (auto-paginates). */
8
+ async list() {
9
+ return fetchAllPages(this.client, '/api/v1/notification-policies');
10
+ }
11
+ /** List notification policies with manual page control. */
12
+ async listPage(page, size) {
13
+ return fetchPage(this.client, '/api/v1/notification-policies', page, size);
14
+ }
15
+ /** Get a single notification policy by ID. */
16
+ async get(id) {
17
+ const resp = await apiGet(this.client, `/api/v1/notification-policies/${id}`);
18
+ return unwrapSingle(resp);
19
+ }
20
+ /** Create a new notification policy. */
21
+ async create(body) {
22
+ const resp = await apiPost(this.client, '/api/v1/notification-policies', body);
23
+ return unwrapSingle(resp);
24
+ }
25
+ /** Update an existing notification policy. */
26
+ async update(id, body) {
27
+ const resp = await apiPut(this.client, `/api/v1/notification-policies/${id}`, body);
28
+ return unwrapSingle(resp);
29
+ }
30
+ /** Delete a notification policy. */
31
+ async delete(id) {
32
+ await apiDelete(this.client, `/api/v1/notification-policies/${id}`);
33
+ }
34
+ /** Send a test dispatch to verify policy routing. */
35
+ async test(id) {
36
+ await apiPost(this.client, `/api/v1/notification-policies/${id}/test`, {});
37
+ }
38
+ }
39
+ //# sourceMappingURL=notification-policies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-policies.js","sourceRoot":"","sources":["../../src/resources/notification-policies.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAC,MAAM,YAAY,CAAA;AAErG,MAAM,OAAO,oBAAoB;IACF;IAA7B,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAElD,uDAAuD;IACvD,KAAK,CAAC,IAAI;QACR,OAAO,aAAa,CAAwB,IAAI,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAA;IAC3F,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,IAAY;QACvC,OAAO,SAAS,CAAwB,IAAI,CAAC,MAAM,EAAE,+BAA+B,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACnG,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,GAAG,CAAC,EAAmB;QAC3B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAiC,IAAI,CAAC,MAAM,EAAE,iCAAiC,EAAE,EAAE,CAAC,CAAA;QAC7G,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,MAAM,CAAC,IAAqC;QAChD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAiC,IAAI,CAAC,MAAM,EAAE,+BAA+B,EAAE,IAAI,CAAC,CAAA;QAC9G,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,MAAM,CAAC,EAAmB,EAAE,IAAqC;QACrE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAiC,IAAI,CAAC,MAAM,EAAE,iCAAiC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;QACnH,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,MAAM,CAAC,EAAmB;QAC9B,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,iCAAiC,EAAE,EAAE,CAAC,CAAA;IACrE,CAAC;IAED,qDAAqD;IACrD,KAAK,CAAC,IAAI,CAAC,EAAmB;QAC5B,MAAM,OAAO,CAAU,IAAI,CAAC,MAAM,EAAE,iCAAiC,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;IACrF,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ import type { ApiClient } from '../http.js';
2
+ import type { ResourceGroupDto, CreateResourceGroupRequest, UpdateResourceGroupRequest, Page } from '../types.js';
3
+ export declare class ResourceGroups {
4
+ private readonly client;
5
+ constructor(client: ApiClient);
6
+ /** List all resource groups (auto-paginates). */
7
+ list(): Promise<ResourceGroupDto[]>;
8
+ /** List resource groups with manual page control. */
9
+ listPage(page: number, size: number): Promise<Page<ResourceGroupDto>>;
10
+ /** Get a single resource group by ID. */
11
+ get(id: string | number): Promise<ResourceGroupDto>;
12
+ /** Create a new resource group. */
13
+ create(body: CreateResourceGroupRequest): Promise<ResourceGroupDto>;
14
+ /** Update an existing resource group. */
15
+ update(id: string | number, body: UpdateResourceGroupRequest): Promise<ResourceGroupDto>;
16
+ /** Delete a resource group. */
17
+ delete(id: string | number): Promise<void>;
18
+ /** Add a member (monitor or service) to a resource group. */
19
+ addMember(groupId: string | number, memberId: string | number, memberType: 'MONITOR' | 'SERVICE'): Promise<void>;
20
+ /** Remove a member from a resource group. */
21
+ removeMember(groupId: string | number, memberId: string | number): Promise<void>;
22
+ }
23
+ //# sourceMappingURL=resource-groups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-groups.d.ts","sourceRoot":"","sources":["../../src/resources/resource-groups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EAAC,gBAAgB,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,IAAI,EAAC,MAAM,aAAa,CAAA;AAG/G,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,SAAS;IAE9C,iDAAiD;IAC3C,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAIzC,qDAAqD;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAI3E,yCAAyC;IACnC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAKzD,mCAAmC;IAC7B,MAAM,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAKzE,yCAAyC;IACnC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAK9F,+BAA+B;IACzB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,6DAA6D;IACvD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAItH,6CAA6C;IACvC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGvF"}
@@ -0,0 +1,43 @@
1
+ import { apiGet, apiPost, apiPut, apiDelete, fetchAllPages, fetchPage, unwrapSingle } from '../http.js';
2
+ export class ResourceGroups {
3
+ client;
4
+ constructor(client) {
5
+ this.client = client;
6
+ }
7
+ /** List all resource groups (auto-paginates). */
8
+ async list() {
9
+ return fetchAllPages(this.client, '/api/v1/resource-groups');
10
+ }
11
+ /** List resource groups with manual page control. */
12
+ async listPage(page, size) {
13
+ return fetchPage(this.client, '/api/v1/resource-groups', page, size);
14
+ }
15
+ /** Get a single resource group by ID. */
16
+ async get(id) {
17
+ const resp = await apiGet(this.client, `/api/v1/resource-groups/${id}`);
18
+ return unwrapSingle(resp);
19
+ }
20
+ /** Create a new resource group. */
21
+ async create(body) {
22
+ const resp = await apiPost(this.client, '/api/v1/resource-groups', body);
23
+ return unwrapSingle(resp);
24
+ }
25
+ /** Update an existing resource group. */
26
+ async update(id, body) {
27
+ const resp = await apiPut(this.client, `/api/v1/resource-groups/${id}`, body);
28
+ return unwrapSingle(resp);
29
+ }
30
+ /** Delete a resource group. */
31
+ async delete(id) {
32
+ await apiDelete(this.client, `/api/v1/resource-groups/${id}`);
33
+ }
34
+ /** Add a member (monitor or service) to a resource group. */
35
+ async addMember(groupId, memberId, memberType) {
36
+ await apiPost(this.client, `/api/v1/resource-groups/${groupId}/members`, { memberId, memberType });
37
+ }
38
+ /** Remove a member from a resource group. */
39
+ async removeMember(groupId, memberId) {
40
+ await apiDelete(this.client, `/api/v1/resource-groups/${groupId}/members/${memberId}`);
41
+ }
42
+ }
43
+ //# sourceMappingURL=resource-groups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-groups.js","sourceRoot":"","sources":["../../src/resources/resource-groups.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAC,MAAM,YAAY,CAAA;AAErG,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAElD,iDAAiD;IACjD,KAAK,CAAC,IAAI;QACR,OAAO,aAAa,CAAmB,IAAI,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAA;IAChF,CAAC;IAED,qDAAqD;IACrD,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,IAAY;QACvC,OAAO,SAAS,CAAmB,IAAI,CAAC,MAAM,EAAE,yBAAyB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACxF,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,GAAG,CAAC,EAAmB;QAC3B,MAAM,IAAI,GAAG,MAAM,MAAM,CAA4B,IAAI,CAAC,MAAM,EAAE,2BAA2B,EAAE,EAAE,CAAC,CAAA;QAClG,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,MAAM,CAAC,IAAgC;QAC3C,MAAM,IAAI,GAAG,MAAM,OAAO,CAA4B,IAAI,CAAC,MAAM,EAAE,yBAAyB,EAAE,IAAI,CAAC,CAAA;QACnG,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,MAAM,CAAC,EAAmB,EAAE,IAAgC;QAChE,MAAM,IAAI,GAAG,MAAM,MAAM,CAA4B,IAAI,CAAC,MAAM,EAAE,2BAA2B,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;QACxG,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,+BAA+B;IAC/B,KAAK,CAAC,MAAM,CAAC,EAAmB;QAC9B,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,2BAA2B,EAAE,EAAE,CAAC,CAAA;IAC/D,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,SAAS,CAAC,OAAwB,EAAE,QAAyB,EAAE,UAAiC;QACpG,MAAM,OAAO,CAAU,IAAI,CAAC,MAAM,EAAE,2BAA2B,OAAO,UAAU,EAAE,EAAC,QAAQ,EAAE,UAAU,EAAC,CAAC,CAAA;IAC3G,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,YAAY,CAAC,OAAwB,EAAE,QAAyB;QACpE,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,2BAA2B,OAAO,YAAY,QAAQ,EAAE,CAAC,CAAA;IACxF,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import type { ApiClient } from '../http.js';
2
+ import type { SecretDto, CreateSecretRequest, UpdateSecretRequest, Page } from '../types.js';
3
+ export declare class Secrets {
4
+ private readonly client;
5
+ constructor(client: ApiClient);
6
+ /** List all secrets (auto-paginates). Returns metadata only, not values. */
7
+ list(): Promise<SecretDto[]>;
8
+ /** List secrets with manual page control. */
9
+ listPage(page: number, size: number): Promise<Page<SecretDto>>;
10
+ /** Create a new secret. */
11
+ create(body: CreateSecretRequest): Promise<SecretDto>;
12
+ /** Update a secret's value by key. */
13
+ update(key: string, body: UpdateSecretRequest): Promise<SecretDto>;
14
+ /** Delete a secret by key. */
15
+ delete(key: string): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=secrets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/resources/secrets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EAAC,SAAS,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,IAAI,EAAC,MAAM,aAAa,CAAA;AAG1F,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,SAAS;IAE9C,4EAA4E;IACtE,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAIlC,6CAA6C;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAIpE,2BAA2B;IACrB,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC;IAK3D,sCAAsC;IAChC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC;IAKxE,8BAA8B;IACxB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzC"}
@@ -0,0 +1,30 @@
1
+ import { apiPost, apiPut, apiDelete, fetchAllPages, fetchPage, unwrapSingle } from '../http.js';
2
+ export class Secrets {
3
+ client;
4
+ constructor(client) {
5
+ this.client = client;
6
+ }
7
+ /** List all secrets (auto-paginates). Returns metadata only, not values. */
8
+ async list() {
9
+ return fetchAllPages(this.client, '/api/v1/secrets');
10
+ }
11
+ /** List secrets with manual page control. */
12
+ async listPage(page, size) {
13
+ return fetchPage(this.client, '/api/v1/secrets', page, size);
14
+ }
15
+ /** Create a new secret. */
16
+ async create(body) {
17
+ const resp = await apiPost(this.client, '/api/v1/secrets', body);
18
+ return unwrapSingle(resp);
19
+ }
20
+ /** Update a secret's value by key. */
21
+ async update(key, body) {
22
+ const resp = await apiPut(this.client, `/api/v1/secrets/${key}`, body);
23
+ return unwrapSingle(resp);
24
+ }
25
+ /** Delete a secret by key. */
26
+ async delete(key) {
27
+ await apiDelete(this.client, `/api/v1/secrets/${key}`);
28
+ }
29
+ }
30
+ //# sourceMappingURL=secrets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/resources/secrets.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAC,MAAM,YAAY,CAAA;AAE7F,MAAM,OAAO,OAAO;IACW;IAA7B,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAElD,4EAA4E;IAC5E,KAAK,CAAC,IAAI;QACR,OAAO,aAAa,CAAY,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IACjE,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,IAAY;QACvC,OAAO,SAAS,CAAY,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACzE,CAAC;IAED,2BAA2B;IAC3B,KAAK,CAAC,MAAM,CAAC,IAAyB;QACpC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAqB,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAA;QACpF,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,IAAyB;QACjD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAqB,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,EAAE,EAAE,IAAI,CAAC,CAAA;QAC1F,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,8BAA8B;IAC9B,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,EAAE,CAAC,CAAA;IACxD,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import type { ApiClient } from '../http.js';
2
+ import type { DashboardOverviewDto } from '../types.js';
3
+ export declare class Status {
4
+ private readonly client;
5
+ constructor(client: ApiClient);
6
+ /** Get the dashboard overview (monitors summary, active incidents, etc.). */
7
+ overview(): Promise<DashboardOverviewDto>;
8
+ }
9
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/resources/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,aAAa,CAAA;AAGrD,qBAAa,MAAM;IACL,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,SAAS;IAE9C,6EAA6E;IACvE,QAAQ,IAAI,OAAO,CAAC,oBAAoB,CAAC;CAIhD"}
@@ -0,0 +1,13 @@
1
+ import { apiGet, unwrapSingle } from '../http.js';
2
+ export class Status {
3
+ client;
4
+ constructor(client) {
5
+ this.client = client;
6
+ }
7
+ /** Get the dashboard overview (monitors summary, active incidents, etc.). */
8
+ async overview() {
9
+ const resp = await apiGet(this.client, '/api/v1/dashboard/overview');
10
+ return unwrapSingle(resp);
11
+ }
12
+ }
13
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/resources/status.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAE,YAAY,EAAC,MAAM,YAAY,CAAA;AAE/C,MAAM,OAAO,MAAM;IACY;IAA7B,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAElD,6EAA6E;IAC7E,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,GAAG,MAAM,MAAM,CAAgC,IAAI,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAA;QACnG,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import type { ApiClient } from '../http.js';
2
+ import type { TagDto, CreateTagRequest, UpdateTagRequest, Page } from '../types.js';
3
+ export declare class Tags {
4
+ private readonly client;
5
+ constructor(client: ApiClient);
6
+ /** List all tags (auto-paginates). */
7
+ list(): Promise<TagDto[]>;
8
+ /** List tags with manual page control. */
9
+ listPage(page: number, size: number): Promise<Page<TagDto>>;
10
+ /** Get a single tag by ID. */
11
+ get(id: string | number): Promise<TagDto>;
12
+ /** Create a new tag. */
13
+ create(body: CreateTagRequest): Promise<TagDto>;
14
+ /** Update an existing tag. */
15
+ update(id: string | number, body: UpdateTagRequest): Promise<TagDto>;
16
+ /** Delete a tag. */
17
+ delete(id: string | number): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/resources/tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAC,MAAM,aAAa,CAAA;AAGjF,qBAAa,IAAI;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,SAAS;IAE9C,sCAAsC;IAChC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI/B,0CAA0C;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAIjE,8BAA8B;IACxB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/C,wBAAwB;IAClB,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAKrD,8BAA8B;IACxB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAK1E,oBAAoB;IACd,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGjD"}
@@ -0,0 +1,35 @@
1
+ import { apiGet, apiPost, apiPut, apiDelete, fetchAllPages, fetchPage, unwrapSingle } from '../http.js';
2
+ export class Tags {
3
+ client;
4
+ constructor(client) {
5
+ this.client = client;
6
+ }
7
+ /** List all tags (auto-paginates). */
8
+ async list() {
9
+ return fetchAllPages(this.client, '/api/v1/tags');
10
+ }
11
+ /** List tags with manual page control. */
12
+ async listPage(page, size) {
13
+ return fetchPage(this.client, '/api/v1/tags', page, size);
14
+ }
15
+ /** Get a single tag by ID. */
16
+ async get(id) {
17
+ const resp = await apiGet(this.client, `/api/v1/tags/${id}`);
18
+ return unwrapSingle(resp);
19
+ }
20
+ /** Create a new tag. */
21
+ async create(body) {
22
+ const resp = await apiPost(this.client, '/api/v1/tags', body);
23
+ return unwrapSingle(resp);
24
+ }
25
+ /** Update an existing tag. */
26
+ async update(id, body) {
27
+ const resp = await apiPut(this.client, `/api/v1/tags/${id}`, body);
28
+ return unwrapSingle(resp);
29
+ }
30
+ /** Delete a tag. */
31
+ async delete(id) {
32
+ await apiDelete(this.client, `/api/v1/tags/${id}`);
33
+ }
34
+ }
35
+ //# sourceMappingURL=tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/resources/tags.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAC,MAAM,YAAY,CAAA;AAErG,MAAM,OAAO,IAAI;IACc;IAA7B,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAElD,sCAAsC;IACtC,KAAK,CAAC,IAAI;QACR,OAAO,aAAa,CAAS,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAC3D,CAAC;IAED,0CAA0C;IAC1C,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,IAAY;QACvC,OAAO,SAAS,CAAS,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACnE,CAAC;IAED,8BAA8B;IAC9B,KAAK,CAAC,GAAG,CAAC,EAAmB;QAC3B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAkB,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAA;QAC7E,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,wBAAwB;IACxB,KAAK,CAAC,MAAM,CAAC,IAAsB;QACjC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAkB,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,CAAA;QAC9E,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,8BAA8B;IAC9B,KAAK,CAAC,MAAM,CAAC,EAAmB,EAAE,IAAsB;QACtD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAkB,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;QACnF,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,oBAAoB;IACpB,KAAK,CAAC,MAAM,CAAC,EAAmB;QAC9B,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAA;IACpD,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ import type { ApiClient } from '../http.js';
2
+ import type { WebhookEndpointDto, CreateWebhookEndpointRequest, UpdateWebhookEndpointRequest, Page } from '../types.js';
3
+ export declare class Webhooks {
4
+ private readonly client;
5
+ constructor(client: ApiClient);
6
+ /** List all webhook endpoints (auto-paginates). */
7
+ list(): Promise<WebhookEndpointDto[]>;
8
+ /** List webhook endpoints with manual page control. */
9
+ listPage(page: number, size: number): Promise<Page<WebhookEndpointDto>>;
10
+ /** Get a single webhook endpoint by ID. */
11
+ get(id: string | number): Promise<WebhookEndpointDto>;
12
+ /** Create a new webhook endpoint. */
13
+ create(body: CreateWebhookEndpointRequest): Promise<WebhookEndpointDto>;
14
+ /** Update an existing webhook endpoint. */
15
+ update(id: string | number, body: UpdateWebhookEndpointRequest): Promise<WebhookEndpointDto>;
16
+ /** Delete a webhook endpoint. */
17
+ delete(id: string | number): Promise<void>;
18
+ /** Send a test event to this webhook. */
19
+ test(id: string | number): Promise<{
20
+ success: boolean;
21
+ }>;
22
+ }
23
+ //# sourceMappingURL=webhooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/resources/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EAAC,kBAAkB,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,IAAI,EAAC,MAAM,aAAa,CAAA;AAGrH,qBAAa,QAAQ;IACP,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,SAAS;IAE9C,mDAAmD;IAC7C,IAAI,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAI3C,uDAAuD;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAI7E,2CAA2C;IACrC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAK3D,qCAAqC;IAC/B,MAAM,CAAC,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAK7E,2CAA2C;IACrC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAKlG,iCAAiC;IAC3B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,yCAAyC;IACnC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAC,CAAC;CAI7D"}
@@ -0,0 +1,40 @@
1
+ import { apiGet, apiPost, apiPut, apiDelete, fetchAllPages, fetchPage, unwrapSingle } from '../http.js';
2
+ export class Webhooks {
3
+ client;
4
+ constructor(client) {
5
+ this.client = client;
6
+ }
7
+ /** List all webhook endpoints (auto-paginates). */
8
+ async list() {
9
+ return fetchAllPages(this.client, '/api/v1/webhooks');
10
+ }
11
+ /** List webhook endpoints with manual page control. */
12
+ async listPage(page, size) {
13
+ return fetchPage(this.client, '/api/v1/webhooks', page, size);
14
+ }
15
+ /** Get a single webhook endpoint by ID. */
16
+ async get(id) {
17
+ const resp = await apiGet(this.client, `/api/v1/webhooks/${id}`);
18
+ return unwrapSingle(resp);
19
+ }
20
+ /** Create a new webhook endpoint. */
21
+ async create(body) {
22
+ const resp = await apiPost(this.client, '/api/v1/webhooks', body);
23
+ return unwrapSingle(resp);
24
+ }
25
+ /** Update an existing webhook endpoint. */
26
+ async update(id, body) {
27
+ const resp = await apiPut(this.client, `/api/v1/webhooks/${id}`, body);
28
+ return unwrapSingle(resp);
29
+ }
30
+ /** Delete a webhook endpoint. */
31
+ async delete(id) {
32
+ await apiDelete(this.client, `/api/v1/webhooks/${id}`);
33
+ }
34
+ /** Send a test event to this webhook. */
35
+ async test(id) {
36
+ const resp = await apiPost(this.client, `/api/v1/webhooks/${id}/test`);
37
+ return unwrapSingle(resp);
38
+ }
39
+ }
40
+ //# sourceMappingURL=webhooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/resources/webhooks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAC,MAAM,YAAY,CAAA;AAErG,MAAM,OAAO,QAAQ;IACU;IAA7B,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAElD,mDAAmD;IACnD,KAAK,CAAC,IAAI;QACR,OAAO,aAAa,CAAqB,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAC3E,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,IAAY;QACvC,OAAO,SAAS,CAAqB,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACnF,CAAC;IAED,2CAA2C;IAC3C,KAAK,CAAC,GAAG,CAAC,EAAmB;QAC3B,MAAM,IAAI,GAAG,MAAM,MAAM,CAA8B,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAA;QAC7F,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,MAAM,CAAC,IAAkC;QAC7C,MAAM,IAAI,GAAG,MAAM,OAAO,CAA8B,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAA;QAC9F,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,2CAA2C;IAC3C,KAAK,CAAC,MAAM,CAAC,EAAmB,EAAE,IAAkC;QAClE,MAAM,IAAI,GAAG,MAAM,MAAM,CAA8B,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;QACnG,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,MAAM,CAAC,EAAmB;QAC9B,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAA;IACxD,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,IAAI,CAAC,EAAmB;QAC5B,MAAM,IAAI,GAAG,MAAM,OAAO,CAA8B,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAA;QACnG,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;CACF"}
@@ -0,0 +1,60 @@
1
+ import type { components } from './generated/api.js';
2
+ export type Schemas = components['schemas'];
3
+ export type MonitorDto = Schemas['MonitorDto'];
4
+ export type IncidentDto = Schemas['IncidentDto'];
5
+ export type IncidentDetailDto = Schemas['IncidentDetailDto'];
6
+ export type AlertChannelDto = Schemas['AlertChannelDto'];
7
+ export type NotificationPolicyDto = Schemas['NotificationPolicyDto'];
8
+ export type EnvironmentDto = Schemas['EnvironmentDto'];
9
+ export type SecretDto = Schemas['SecretDto'];
10
+ export type TagDto = Schemas['TagDto'];
11
+ export type ResourceGroupDto = Schemas['ResourceGroupDto'];
12
+ export type WebhookEndpointDto = Schemas['WebhookEndpointDto'];
13
+ export type ApiKeyDto = Schemas['ApiKeyDto'];
14
+ export type ApiKeyCreateResponse = Schemas['ApiKeyCreateResponse'];
15
+ export type ServiceSubscriptionDto = Schemas['ServiceSubscriptionDto'];
16
+ export type MonitorVersionDto = Schemas['MonitorVersionDto'];
17
+ export type CheckResultDto = Schemas['CheckResultDto'];
18
+ export type DashboardOverviewDto = Schemas['DashboardOverviewDto'];
19
+ export type DeployLockDto = Schemas['DeployLockDto'];
20
+ export type AssertionTestResultDto = Schemas['AssertionTestResultDto'];
21
+ export type CreateMonitorRequest = Schemas['CreateMonitorRequest'];
22
+ export type UpdateMonitorRequest = Schemas['UpdateMonitorRequest'];
23
+ export type CreateManualIncidentRequest = Schemas['CreateManualIncidentRequest'];
24
+ export type CreateAlertChannelRequest = Schemas['CreateAlertChannelRequest'];
25
+ export type UpdateAlertChannelRequest = Schemas['UpdateAlertChannelRequest'];
26
+ export type CreateNotificationPolicyRequest = Schemas['CreateNotificationPolicyRequest'];
27
+ export type UpdateNotificationPolicyRequest = Schemas['UpdateNotificationPolicyRequest'];
28
+ export type CreateEnvironmentRequest = Schemas['CreateEnvironmentRequest'];
29
+ export type UpdateEnvironmentRequest = Schemas['UpdateEnvironmentRequest'];
30
+ export type CreateSecretRequest = Schemas['CreateSecretRequest'];
31
+ export type UpdateSecretRequest = Schemas['UpdateSecretRequest'];
32
+ export type CreateTagRequest = Schemas['CreateTagRequest'];
33
+ export type UpdateTagRequest = Schemas['UpdateTagRequest'];
34
+ export type CreateResourceGroupRequest = Schemas['CreateResourceGroupRequest'];
35
+ export type UpdateResourceGroupRequest = Schemas['UpdateResourceGroupRequest'];
36
+ export type CreateWebhookEndpointRequest = Schemas['CreateWebhookEndpointRequest'];
37
+ export type UpdateWebhookEndpointRequest = Schemas['UpdateWebhookEndpointRequest'];
38
+ export type CreateApiKeyRequest = Schemas['CreateApiKeyRequest'];
39
+ export type AcquireDeployLockRequest = Schemas['AcquireDeployLockRequest'];
40
+ export interface Page<T> {
41
+ data: T[];
42
+ hasNext: boolean;
43
+ hasPrev: boolean;
44
+ }
45
+ export interface CursorPage<T> {
46
+ data: T[];
47
+ nextCursor: string | null;
48
+ hasMore: boolean;
49
+ }
50
+ export interface DevhelmConfig {
51
+ /** API token (Bearer). Required. */
52
+ token: string;
53
+ /** Base URL for the DevHelm API. Defaults to https://api.devhelm.io */
54
+ baseUrl?: string;
55
+ /** Organization ID header. Defaults to env DEVHELM_ORG_ID or "1". */
56
+ orgId?: string;
57
+ /** Workspace ID header. Defaults to env DEVHELM_WORKSPACE_ID or "1". */
58
+ workspaceId?: string;
59
+ }
60
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@devhelm/sdk",
3
+ "version": "0.1.0",
4
+ "description": "DevHelm SDK for TypeScript and JavaScript — typed client for monitors, incidents, alerting, and more",
5
+ "author": "DevHelm <hello@devhelm.io>",
6
+ "license": "MIT",
7
+ "homepage": "https://github.com/devhelmhq/sdk-js",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/devhelmhq/sdk-js.git"
11
+ },
12
+ "bugs": "https://github.com/devhelmhq/sdk-js/issues",
13
+ "type": "module",
14
+ "main": "dist/index.js",
15
+ "types": "dist/index.d.ts",
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist/index.d.ts",
19
+ "import": "./dist/index.js"
20
+ }
21
+ },
22
+ "files": [
23
+ "dist"
24
+ ],
25
+ "scripts": {
26
+ "typegen": "openapi-typescript docs/openapi/monitoring-api.json -o src/generated/api.ts",
27
+ "build": "npm run typegen && tsc -b",
28
+ "lint": "eslint src/",
29
+ "lint:fix": "eslint src/ --fix",
30
+ "test": "vitest run",
31
+ "test:watch": "vitest",
32
+ "typecheck": "tsc --noEmit",
33
+ "prepublishOnly": "npm run build"
34
+ },
35
+ "engines": {
36
+ "node": ">=18.0.0"
37
+ },
38
+ "keywords": [
39
+ "devhelm",
40
+ "monitoring",
41
+ "sdk",
42
+ "typescript",
43
+ "uptime",
44
+ "api-client"
45
+ ],
46
+ "dependencies": {
47
+ "openapi-fetch": "^0.17.0"
48
+ },
49
+ "devDependencies": {
50
+ "@types/node": "^25.6.0",
51
+ "@typescript-eslint/eslint-plugin": "^8.58.1",
52
+ "@typescript-eslint/parser": "^8.58.1",
53
+ "eslint": "^10.2.0",
54
+ "openapi-typescript": "^7.13.0",
55
+ "typescript": "^6.0.2",
56
+ "vitest": "^4.1.4"
57
+ }
58
+ }