devhelm 0.1.0 → 0.1.2

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 (182) hide show
  1. package/README.md +106 -34
  2. package/dist/commands/alert-channels/create.js +4 -0
  3. package/dist/commands/alert-channels/create.js.map +1 -0
  4. package/dist/commands/alert-channels/delete.js +4 -0
  5. package/dist/commands/alert-channels/delete.js.map +1 -0
  6. package/dist/commands/alert-channels/get.js +4 -0
  7. package/dist/commands/alert-channels/get.js.map +1 -0
  8. package/dist/commands/alert-channels/list.js +4 -0
  9. package/dist/commands/alert-channels/list.js.map +1 -0
  10. package/dist/commands/alert-channels/test.js +19 -0
  11. package/dist/commands/alert-channels/test.js.map +1 -0
  12. package/dist/commands/alert-channels/update.js +4 -0
  13. package/dist/commands/alert-channels/update.js.map +1 -0
  14. package/dist/commands/api-keys/create.js +4 -0
  15. package/dist/commands/api-keys/create.js.map +1 -0
  16. package/dist/commands/api-keys/delete.js +4 -0
  17. package/dist/commands/api-keys/delete.js.map +1 -0
  18. package/dist/commands/api-keys/get.js +4 -0
  19. package/dist/commands/api-keys/get.js.map +1 -0
  20. package/dist/commands/api-keys/list.js +4 -0
  21. package/dist/commands/api-keys/list.js.map +1 -0
  22. package/dist/commands/api-keys/revoke.js +17 -0
  23. package/dist/commands/api-keys/revoke.js.map +1 -0
  24. package/dist/commands/auth/context/create.js +20 -0
  25. package/dist/commands/auth/context/create.js.map +1 -0
  26. package/dist/commands/auth/context/delete.js +18 -0
  27. package/dist/commands/auth/context/delete.js.map +1 -0
  28. package/dist/commands/auth/context/index.js +18 -0
  29. package/dist/commands/auth/context/index.js.map +1 -0
  30. package/dist/commands/auth/context/list.js +29 -0
  31. package/dist/commands/auth/context/list.js.map +1 -0
  32. package/dist/commands/auth/context/use.js +18 -0
  33. package/dist/commands/auth/context/use.js.map +1 -0
  34. package/dist/commands/auth/login.js +51 -0
  35. package/dist/commands/auth/login.js.map +1 -0
  36. package/dist/commands/auth/logout.js +19 -0
  37. package/dist/commands/auth/logout.js.map +1 -0
  38. package/dist/commands/auth/token.js +17 -0
  39. package/dist/commands/auth/token.js.map +1 -0
  40. package/dist/commands/data/services/status.js +19 -0
  41. package/dist/commands/data/services/status.js.map +1 -0
  42. package/dist/commands/data/services/uptime.js +29 -0
  43. package/dist/commands/data/services/uptime.js.map +1 -0
  44. package/dist/commands/dependencies/delete.js +4 -0
  45. package/dist/commands/dependencies/delete.js.map +1 -0
  46. package/dist/commands/dependencies/get.js +4 -0
  47. package/dist/commands/dependencies/get.js.map +1 -0
  48. package/dist/commands/dependencies/list.js +4 -0
  49. package/dist/commands/dependencies/list.js.map +1 -0
  50. package/dist/commands/dependencies/track.js +19 -0
  51. package/dist/commands/dependencies/track.js.map +1 -0
  52. package/dist/commands/environments/create.js +4 -0
  53. package/dist/commands/environments/create.js.map +1 -0
  54. package/dist/commands/environments/delete.js +4 -0
  55. package/dist/commands/environments/delete.js.map +1 -0
  56. package/dist/commands/environments/get.js +4 -0
  57. package/dist/commands/environments/get.js.map +1 -0
  58. package/dist/commands/environments/list.js +4 -0
  59. package/dist/commands/environments/list.js.map +1 -0
  60. package/dist/commands/environments/update.js +4 -0
  61. package/dist/commands/environments/update.js.map +1 -0
  62. package/dist/commands/incidents/create.js +4 -0
  63. package/dist/commands/incidents/create.js.map +1 -0
  64. package/dist/commands/incidents/delete.js +4 -0
  65. package/dist/commands/incidents/delete.js.map +1 -0
  66. package/dist/commands/incidents/get.js +4 -0
  67. package/dist/commands/incidents/get.js.map +1 -0
  68. package/dist/commands/incidents/list.js +4 -0
  69. package/dist/commands/incidents/list.js.map +1 -0
  70. package/dist/commands/incidents/resolve.js +25 -0
  71. package/dist/commands/incidents/resolve.js.map +1 -0
  72. package/dist/commands/incidents/update.js +4 -0
  73. package/dist/commands/incidents/update.js.map +1 -0
  74. package/dist/commands/init.js +61 -0
  75. package/dist/commands/init.js.map +1 -0
  76. package/dist/commands/monitors/create.js +4 -0
  77. package/dist/commands/monitors/create.js.map +1 -0
  78. package/dist/commands/monitors/delete.js +4 -0
  79. package/dist/commands/monitors/delete.js.map +1 -0
  80. package/dist/commands/monitors/get.js +4 -0
  81. package/dist/commands/monitors/get.js.map +1 -0
  82. package/dist/commands/monitors/list.js +3 -33
  83. package/dist/commands/monitors/list.js.map +1 -1
  84. package/dist/commands/monitors/pause.js +19 -0
  85. package/dist/commands/monitors/pause.js.map +1 -0
  86. package/dist/commands/monitors/results.js +29 -0
  87. package/dist/commands/monitors/results.js.map +1 -0
  88. package/dist/commands/monitors/resume.js +19 -0
  89. package/dist/commands/monitors/resume.js.map +1 -0
  90. package/dist/commands/monitors/test.js +20 -0
  91. package/dist/commands/monitors/test.js.map +1 -0
  92. package/dist/commands/monitors/update.js +4 -0
  93. package/dist/commands/monitors/update.js.map +1 -0
  94. package/dist/commands/notification-policies/create.js +4 -0
  95. package/dist/commands/notification-policies/create.js.map +1 -0
  96. package/dist/commands/notification-policies/delete.js +4 -0
  97. package/dist/commands/notification-policies/delete.js.map +1 -0
  98. package/dist/commands/notification-policies/get.js +4 -0
  99. package/dist/commands/notification-policies/get.js.map +1 -0
  100. package/dist/commands/notification-policies/list.js +4 -0
  101. package/dist/commands/notification-policies/list.js.map +1 -0
  102. package/dist/commands/notification-policies/test.js +17 -0
  103. package/dist/commands/notification-policies/test.js.map +1 -0
  104. package/dist/commands/notification-policies/update.js +4 -0
  105. package/dist/commands/notification-policies/update.js.map +1 -0
  106. package/dist/commands/resource-groups/create.js +4 -0
  107. package/dist/commands/resource-groups/create.js.map +1 -0
  108. package/dist/commands/resource-groups/delete.js +4 -0
  109. package/dist/commands/resource-groups/delete.js.map +1 -0
  110. package/dist/commands/resource-groups/get.js +4 -0
  111. package/dist/commands/resource-groups/get.js.map +1 -0
  112. package/dist/commands/resource-groups/list.js +4 -0
  113. package/dist/commands/resource-groups/list.js.map +1 -0
  114. package/dist/commands/resource-groups/update.js +4 -0
  115. package/dist/commands/resource-groups/update.js.map +1 -0
  116. package/dist/commands/secrets/create.js +4 -0
  117. package/dist/commands/secrets/create.js.map +1 -0
  118. package/dist/commands/secrets/delete.js +4 -0
  119. package/dist/commands/secrets/delete.js.map +1 -0
  120. package/dist/commands/secrets/list.js +4 -0
  121. package/dist/commands/secrets/list.js.map +1 -0
  122. package/dist/commands/secrets/update.js +4 -0
  123. package/dist/commands/secrets/update.js.map +1 -0
  124. package/dist/commands/status.js +35 -0
  125. package/dist/commands/status.js.map +1 -0
  126. package/dist/commands/tags/create.js +4 -0
  127. package/dist/commands/tags/create.js.map +1 -0
  128. package/dist/commands/tags/delete.js +4 -0
  129. package/dist/commands/tags/delete.js.map +1 -0
  130. package/dist/commands/tags/get.js +4 -0
  131. package/dist/commands/tags/get.js.map +1 -0
  132. package/dist/commands/tags/list.js +4 -0
  133. package/dist/commands/tags/list.js.map +1 -0
  134. package/dist/commands/tags/update.js +4 -0
  135. package/dist/commands/tags/update.js.map +1 -0
  136. package/dist/commands/validate.js +63 -0
  137. package/dist/commands/validate.js.map +1 -0
  138. package/dist/commands/version.js.map +1 -1
  139. package/dist/commands/webhooks/create.js +4 -0
  140. package/dist/commands/webhooks/create.js.map +1 -0
  141. package/dist/commands/webhooks/delete.js +4 -0
  142. package/dist/commands/webhooks/delete.js.map +1 -0
  143. package/dist/commands/webhooks/get.js +4 -0
  144. package/dist/commands/webhooks/get.js.map +1 -0
  145. package/dist/commands/webhooks/list.js +4 -0
  146. package/dist/commands/webhooks/list.js.map +1 -0
  147. package/dist/commands/webhooks/test.js +19 -0
  148. package/dist/commands/webhooks/test.js.map +1 -0
  149. package/dist/commands/webhooks/update.js +4 -0
  150. package/dist/commands/webhooks/update.js.map +1 -0
  151. package/dist/lib/api-client.js +51 -28
  152. package/dist/lib/api-client.js.map +1 -1
  153. package/dist/lib/api.generated.js +6 -0
  154. package/dist/lib/api.generated.js.map +1 -0
  155. package/dist/lib/auth.js +20 -0
  156. package/dist/lib/auth.js.map +1 -1
  157. package/dist/lib/base-command.js +27 -0
  158. package/dist/lib/base-command.js.map +1 -0
  159. package/dist/lib/crud-commands.js +111 -0
  160. package/dist/lib/crud-commands.js.map +1 -0
  161. package/dist/lib/descriptions.generated.js +210 -0
  162. package/dist/lib/descriptions.generated.js.map +1 -0
  163. package/dist/lib/errors.js +33 -8
  164. package/dist/lib/errors.js.map +1 -1
  165. package/dist/lib/output.js +53 -0
  166. package/dist/lib/output.js.map +1 -0
  167. package/dist/lib/resources.js +361 -0
  168. package/dist/lib/resources.js.map +1 -0
  169. package/oclif.manifest.json +5187 -10
  170. package/package.json +10 -3
  171. package/dist/commands/monitors/list.d.ts +0 -10
  172. package/dist/commands/monitors/list.d.ts.map +0 -1
  173. package/dist/commands/version.d.ts +0 -7
  174. package/dist/commands/version.d.ts.map +0 -1
  175. package/dist/index.d.ts +0 -2
  176. package/dist/index.d.ts.map +0 -1
  177. package/dist/lib/api-client.d.ts +0 -12
  178. package/dist/lib/api-client.d.ts.map +0 -1
  179. package/dist/lib/auth.d.ts +0 -14
  180. package/dist/lib/auth.d.ts.map +0 -1
  181. package/dist/lib/errors.d.ts +0 -12
  182. package/dist/lib/errors.d.ts.map +0 -1
@@ -0,0 +1,361 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { fieldDescriptions } from './descriptions.generated.js';
3
+ // ── Description lookup from OpenAPI spec ───────────────────────────────
4
+ function desc(schema, field, fallback) {
5
+ return fieldDescriptions[schema]?.[field] ?? fallback ?? field;
6
+ }
7
+ const MONITOR_TYPES = ['HTTP', 'DNS', 'TCP', 'ICMP', 'HEARTBEAT', 'MCP_SERVER'];
8
+ const HTTP_METHODS = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD'];
9
+ const INCIDENT_SEVERITIES = ['DOWN', 'DEGRADED', 'MAINTENANCE'];
10
+ const CHANNEL_TYPES = ['SLACK', 'EMAIL', 'PAGERDUTY', 'OPSGENIE', 'DISCORD', 'TEAMS', 'WEBHOOK'];
11
+ const CHANNEL_TYPE_MAP = {
12
+ SLACK: 'slack',
13
+ EMAIL: 'email',
14
+ PAGERDUTY: 'pagerduty',
15
+ OPSGENIE: 'opsgenie',
16
+ DISCORD: 'discord',
17
+ TEAMS: 'teams',
18
+ WEBHOOK: 'webhook',
19
+ };
20
+ // ── Resource definitions ───────────────────────────────────────────────
21
+ export const MONITORS = {
22
+ name: 'monitor',
23
+ plural: 'monitors',
24
+ apiPath: '/api/v1/monitors',
25
+ columns: [
26
+ { header: 'ID', get: (r) => r.id ?? '' },
27
+ { header: 'NAME', get: (r) => r.name ?? '' },
28
+ { header: 'TYPE', get: (r) => r.type ?? '' },
29
+ { header: 'ENABLED', get: (r) => String(r.enabled ?? '') },
30
+ { header: 'FREQ(s)', get: (r) => String(r.frequencySeconds ?? '') },
31
+ { header: 'REGIONS', get: (r) => (r.regions ?? []).join(', ') },
32
+ { header: 'MANAGED', get: (r) => r.managedBy ?? '' },
33
+ ],
34
+ createFlags: {
35
+ name: Flags.string({ description: desc('CreateMonitorRequest', 'name'), required: true }),
36
+ type: Flags.string({
37
+ description: desc('CreateMonitorRequest', 'type'),
38
+ required: true,
39
+ options: MONITOR_TYPES,
40
+ }),
41
+ url: Flags.string({ description: desc('HttpMonitorConfig', 'url', 'Target URL or host') }),
42
+ frequency: Flags.string({ description: desc('CreateMonitorRequest', 'frequencySeconds'), default: '60' }),
43
+ method: Flags.string({
44
+ description: desc('HttpMonitorConfig', 'method'),
45
+ options: HTTP_METHODS,
46
+ }),
47
+ port: Flags.string({ description: desc('TcpMonitorConfig', 'port', 'TCP port to connect to') }),
48
+ regions: Flags.string({ description: desc('CreateMonitorRequest', 'regions') }),
49
+ },
50
+ updateFlags: {
51
+ name: Flags.string({ description: desc('UpdateMonitorRequest', 'name') }),
52
+ url: Flags.string({ description: desc('HttpMonitorConfig', 'url', 'Target URL or host') }),
53
+ frequency: Flags.string({ description: desc('UpdateMonitorRequest', 'frequencySeconds') }),
54
+ method: Flags.string({ description: desc('HttpMonitorConfig', 'method'), options: HTTP_METHODS }),
55
+ port: Flags.string({ description: desc('TcpMonitorConfig', 'port', 'TCP port to connect to') }),
56
+ },
57
+ bodyBuilder: (raw) => {
58
+ const monitorType = raw.type;
59
+ if (monitorType) {
60
+ const body = {
61
+ name: String(raw.name),
62
+ type: monitorType,
63
+ managedBy: 'CLI',
64
+ frequencySeconds: raw.frequency ? Number(raw.frequency) : 60,
65
+ config: buildMonitorConfig(monitorType, raw),
66
+ };
67
+ if (raw.regions) {
68
+ body.regions = String(raw.regions).split(',').map((s) => s.trim()).filter(Boolean);
69
+ }
70
+ return body;
71
+ }
72
+ const body = {};
73
+ if (raw.name !== undefined)
74
+ body.name = raw.name;
75
+ if (raw.frequency)
76
+ body.frequencySeconds = Number(raw.frequency);
77
+ if (raw.url !== undefined || raw.method !== undefined) {
78
+ body.config = { monitorType: 'HTTP', url: raw.url, method: raw.method || 'GET' };
79
+ }
80
+ return body;
81
+ },
82
+ };
83
+ function buildMonitorConfig(type, raw) {
84
+ switch (type) {
85
+ case 'HTTP':
86
+ return { url: String(raw.url ?? ''), method: raw.method || 'GET' };
87
+ case 'TCP':
88
+ return { host: String(raw.url ?? ''), port: raw.port ? Number(raw.port) : 443 };
89
+ case 'DNS':
90
+ return { hostname: String(raw.url ?? '') };
91
+ case 'ICMP':
92
+ return { host: String(raw.url ?? '') };
93
+ case 'HEARTBEAT':
94
+ return { expectedInterval: 60, gracePeriod: 60 };
95
+ case 'MCP_SERVER':
96
+ return { command: String(raw.url ?? '') };
97
+ default:
98
+ return { url: String(raw.url ?? ''), method: 'GET' };
99
+ }
100
+ }
101
+ export const INCIDENTS = {
102
+ name: 'incident',
103
+ plural: 'incidents',
104
+ apiPath: '/api/v1/incidents',
105
+ columns: [
106
+ { header: 'ID', get: (r) => r.id ?? '' },
107
+ { header: 'TITLE', get: (r) => r.title ?? '' },
108
+ { header: 'STATUS', get: (r) => r.status ?? '' },
109
+ { header: 'SEVERITY', get: (r) => r.severity ?? '' },
110
+ { header: 'MONITOR', get: (r) => r.monitorName ?? '' },
111
+ { header: 'STARTED', get: (r) => r.startedAt ?? '' },
112
+ ],
113
+ createFlags: {
114
+ title: Flags.string({ description: desc('CreateManualIncidentRequest', 'title'), required: true }),
115
+ severity: Flags.string({
116
+ description: desc('CreateManualIncidentRequest', 'severity'),
117
+ required: true,
118
+ options: INCIDENT_SEVERITIES,
119
+ }),
120
+ 'monitor-id': Flags.string({ description: desc('CreateManualIncidentRequest', 'monitorId') }),
121
+ body: Flags.string({ description: desc('CreateManualIncidentRequest', 'body') }),
122
+ },
123
+ bodyBuilder: (raw) => {
124
+ const body = {
125
+ title: String(raw.title),
126
+ severity: raw.severity,
127
+ };
128
+ if (raw['monitor-id'] !== undefined)
129
+ body.monitorId = String(raw['monitor-id']);
130
+ if (raw.body !== undefined)
131
+ body.body = String(raw.body);
132
+ return body;
133
+ },
134
+ };
135
+ export const ALERT_CHANNELS = {
136
+ name: 'alert channel',
137
+ plural: 'alert-channels',
138
+ apiPath: '/api/v1/alert-channels',
139
+ columns: [
140
+ { header: 'ID', get: (r) => r.id },
141
+ { header: 'NAME', get: (r) => r.name },
142
+ { header: 'TYPE', get: (r) => r.channelType },
143
+ { header: 'LAST DELIVERY', get: (r) => r.lastDeliveryAt ?? '' },
144
+ { header: 'STATUS', get: (r) => r.lastDeliveryStatus ?? '' },
145
+ ],
146
+ createFlags: {
147
+ name: Flags.string({ description: desc('CreateAlertChannelRequest', 'name'), required: true }),
148
+ type: Flags.string({
149
+ description: `Alert channel type (${CHANNEL_TYPES.join(', ')})`,
150
+ required: true,
151
+ options: [...CHANNEL_TYPES],
152
+ }),
153
+ config: Flags.string({ description: 'Channel-specific configuration as JSON' }),
154
+ 'webhook-url': Flags.string({ description: desc('SlackChannelConfig', 'webhookUrl', 'Slack/Discord/Teams webhook URL') }),
155
+ },
156
+ updateFlags: {
157
+ name: Flags.string({ description: desc('UpdateAlertChannelRequest', 'name') }),
158
+ type: Flags.string({ description: 'Alert channel type', options: [...CHANNEL_TYPES] }),
159
+ config: Flags.string({ description: 'Channel-specific configuration as JSON' }),
160
+ 'webhook-url': Flags.string({ description: desc('SlackChannelConfig', 'webhookUrl', 'Slack/Discord/Teams webhook URL') }),
161
+ },
162
+ bodyBuilder: (raw) => {
163
+ let config;
164
+ if (raw.config) {
165
+ config = JSON.parse(String(raw.config));
166
+ }
167
+ else {
168
+ const typeKey = String(raw.type || 'SLACK').toUpperCase();
169
+ const channelType = CHANNEL_TYPE_MAP[typeKey] ?? 'slack';
170
+ if (raw['webhook-url'] !== undefined) {
171
+ config = { channelType, webhookUrl: String(raw['webhook-url']) };
172
+ }
173
+ else {
174
+ config = { channelType };
175
+ }
176
+ }
177
+ const body = {};
178
+ if (raw.name !== undefined)
179
+ body.name = raw.name;
180
+ if (config !== undefined)
181
+ body.config = config;
182
+ return body;
183
+ },
184
+ };
185
+ export const NOTIFICATION_POLICIES = {
186
+ name: 'notification policy',
187
+ plural: 'notification-policies',
188
+ apiPath: '/api/v1/notification-policies',
189
+ columns: [
190
+ { header: 'ID', get: (r) => r.id ?? '' },
191
+ { header: 'NAME', get: (r) => r.name ?? '' },
192
+ { header: 'ENABLED', get: (r) => String(r.enabled ?? '') },
193
+ { header: 'PRIORITY', get: (r) => String(r.priority ?? '') },
194
+ ],
195
+ createFlags: {
196
+ name: Flags.string({ description: desc('CreateNotificationPolicyRequest', 'name'), required: true }),
197
+ 'channel-ids': Flags.string({ description: desc('EscalationStep', 'channelIds', 'Comma-separated alert channel IDs for escalation') }),
198
+ enabled: Flags.boolean({ description: desc('CreateNotificationPolicyRequest', 'enabled'), default: true, allowNo: true }),
199
+ },
200
+ updateFlags: {
201
+ name: Flags.string({ description: desc('UpdateNotificationPolicyRequest', 'name') }),
202
+ 'channel-ids': Flags.string({ description: desc('EscalationStep', 'channelIds', 'Comma-separated alert channel IDs') }),
203
+ enabled: Flags.boolean({ description: desc('UpdateNotificationPolicyRequest', 'enabled'), allowNo: true }),
204
+ },
205
+ bodyBuilder: (raw) => {
206
+ const channelIds = raw['channel-ids']
207
+ ? String(raw['channel-ids']).split(',').map((s) => s.trim()).filter(Boolean)
208
+ : [];
209
+ const body = {
210
+ name: String(raw.name),
211
+ escalation: { steps: [{ channelIds, delayMinutes: 0 }] },
212
+ enabled: raw.enabled ?? true,
213
+ priority: 0,
214
+ };
215
+ return body;
216
+ },
217
+ };
218
+ export const ENVIRONMENTS = {
219
+ name: 'environment',
220
+ plural: 'environments',
221
+ apiPath: '/api/v1/environments',
222
+ idField: 'slug',
223
+ columns: [
224
+ { header: 'SLUG', get: (r) => r.slug ?? '' },
225
+ { header: 'NAME', get: (r) => r.name ?? '' },
226
+ { header: 'MONITORS', get: (r) => String(r.monitorCount ?? 0) },
227
+ { header: 'DEFAULT', get: (r) => String(r.isDefault ?? false) },
228
+ ],
229
+ createFlags: {
230
+ name: Flags.string({ description: desc('CreateEnvironmentRequest', 'name'), required: true }),
231
+ slug: Flags.string({ description: desc('CreateEnvironmentRequest', 'slug'), required: true }),
232
+ color: Flags.string({ description: desc('CreateTagRequest', 'color', 'Color hex code') }),
233
+ },
234
+ updateFlags: {
235
+ name: Flags.string({ description: desc('UpdateEnvironmentRequest', 'name') }),
236
+ color: Flags.string({ description: 'New color hex code' }),
237
+ },
238
+ };
239
+ export const SECRETS = {
240
+ name: 'secret',
241
+ plural: 'secrets',
242
+ apiPath: '/api/v1/secrets',
243
+ idField: 'key',
244
+ columns: [
245
+ { header: 'KEY', get: (r) => r.key ?? '' },
246
+ { header: 'CREATED', get: (r) => r.createdAt ?? '' },
247
+ { header: 'UPDATED', get: (r) => r.updatedAt ?? '' },
248
+ ],
249
+ createFlags: {
250
+ key: Flags.string({ description: desc('CreateSecretRequest', 'key'), required: true }),
251
+ value: Flags.string({ description: desc('CreateSecretRequest', 'value'), required: true }),
252
+ environment: Flags.string({ description: 'Environment slug to scope this secret to' }),
253
+ },
254
+ updateFlags: {
255
+ value: Flags.string({ description: desc('UpdateSecretRequest', 'value'), required: true }),
256
+ },
257
+ };
258
+ export const TAGS = {
259
+ name: 'tag',
260
+ plural: 'tags',
261
+ apiPath: '/api/v1/tags',
262
+ columns: [
263
+ { header: 'ID', get: (r) => r.id ?? '' },
264
+ { header: 'NAME', get: (r) => r.name ?? '' },
265
+ { header: 'COLOR', get: (r) => r.color ?? '' },
266
+ ],
267
+ createFlags: {
268
+ name: Flags.string({ description: desc('CreateTagRequest', 'name'), required: true }),
269
+ color: Flags.string({ description: desc('CreateTagRequest', 'color') }),
270
+ },
271
+ updateFlags: {
272
+ name: Flags.string({ description: desc('UpdateTagRequest', 'name') }),
273
+ color: Flags.string({ description: desc('UpdateTagRequest', 'color') }),
274
+ },
275
+ };
276
+ export const RESOURCE_GROUPS = {
277
+ name: 'resource group',
278
+ plural: 'resource-groups',
279
+ apiPath: '/api/v1/resource-groups',
280
+ columns: [
281
+ { header: 'ID', get: (r) => r.id ?? '' },
282
+ { header: 'NAME', get: (r) => r.name ?? '' },
283
+ { header: 'DESCRIPTION', get: (r) => r.description ?? '' },
284
+ { header: 'HEALTH', get: (r) => r.health?.status ?? '' },
285
+ ],
286
+ createFlags: {
287
+ name: Flags.string({ description: desc('CreateResourceGroupRequest', 'name'), required: true }),
288
+ description: Flags.string({ description: desc('CreateResourceGroupRequest', 'description') }),
289
+ },
290
+ updateFlags: {
291
+ name: Flags.string({ description: desc('UpdateResourceGroupRequest', 'name') }),
292
+ description: Flags.string({ description: desc('UpdateResourceGroupRequest', 'description') }),
293
+ },
294
+ };
295
+ export const WEBHOOKS = {
296
+ name: 'webhook',
297
+ plural: 'webhooks',
298
+ apiPath: '/api/v1/webhooks',
299
+ columns: [
300
+ { header: 'ID', get: (r) => r.id ?? '' },
301
+ { header: 'URL', get: (r) => r.url ?? '' },
302
+ { header: 'ENABLED', get: (r) => String(r.enabled ?? '') },
303
+ { header: 'EVENTS', get: (r) => (r.subscribedEvents ?? []).join(', ') },
304
+ ],
305
+ createFlags: {
306
+ url: Flags.string({ description: desc('CreateWebhookEndpointRequest', 'url'), required: true }),
307
+ events: Flags.string({ description: desc('CreateWebhookEndpointRequest', 'subscribedEvents'), required: true }),
308
+ description: Flags.string({ description: desc('CreateWebhookEndpointRequest', 'description') }),
309
+ },
310
+ updateFlags: {
311
+ url: Flags.string({ description: desc('UpdateWebhookEndpointRequest', 'url') }),
312
+ events: Flags.string({ description: desc('UpdateWebhookEndpointRequest', 'subscribedEvents') }),
313
+ description: Flags.string({ description: desc('UpdateWebhookEndpointRequest', 'description') }),
314
+ },
315
+ bodyBuilder: (raw) => {
316
+ const body = {};
317
+ if (raw.url !== undefined)
318
+ body.url = raw.url;
319
+ if (raw.events !== undefined) {
320
+ body.subscribedEvents = String(raw.events).split(',').map((s) => s.trim()).filter(Boolean);
321
+ }
322
+ if (raw.description !== undefined)
323
+ body.description = raw.description;
324
+ return body;
325
+ },
326
+ };
327
+ export const API_KEYS = {
328
+ name: 'API key',
329
+ plural: 'api-keys',
330
+ apiPath: '/api/v1/api-keys',
331
+ columns: [
332
+ { header: 'ID', get: (r) => String(r.id ?? '') },
333
+ { header: 'NAME', get: (r) => r.name ?? '' },
334
+ { header: 'KEY', get: (r) => r.key ?? '' },
335
+ { header: 'LAST USED', get: (r) => r.lastUsedAt ?? '' },
336
+ { header: 'CREATED', get: (r) => r.createdAt ?? '' },
337
+ ],
338
+ createFlags: {
339
+ name: Flags.string({ description: desc('CreateApiKeyRequest', 'name'), required: true }),
340
+ 'expires-at': Flags.string({ description: desc('CreateApiKeyRequest', 'expiresAt') }),
341
+ },
342
+ bodyBuilder: (raw) => {
343
+ const body = { name: String(raw.name) };
344
+ if (raw['expires-at'] !== undefined)
345
+ body.expiresAt = String(raw['expires-at']);
346
+ return body;
347
+ },
348
+ };
349
+ export const DEPENDENCIES = {
350
+ name: 'dependency',
351
+ plural: 'dependencies',
352
+ apiPath: '/api/v1/service-subscriptions',
353
+ columns: [
354
+ { header: 'ID', get: (r) => r.subscriptionId ?? '' },
355
+ { header: 'SERVICE', get: (r) => r.name ?? '' },
356
+ { header: 'SLUG', get: (r) => r.slug ?? '' },
357
+ { header: 'STATUS', get: (r) => r.overallStatus ?? '' },
358
+ { header: 'ENABLED', get: (r) => String(r.enabled ?? '') },
359
+ ],
360
+ };
361
+ //# sourceMappingURL=resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/lib/resources.ts"],"names":[],"mappings":"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"}