@keystrokehq/sentry 0.0.15 → 0.0.16-integration-id-canonicalization.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 (80) hide show
  1. package/README.md +40 -187
  2. package/dist/credential-sets/index.d.mts +2 -0
  3. package/dist/credential-sets/index.mjs +4 -0
  4. package/dist/index.d.mts +4 -1
  5. package/dist/index.mjs +6 -1
  6. package/dist/operations/index.d.mts +2 -0
  7. package/dist/operations/index.mjs +3 -0
  8. package/dist/{schemas.d.mts → schemas/index.d.mts} +3 -3
  9. package/dist/schemas/index.mjs +3 -0
  10. package/dist/{schemas.mjs → sentry-api-DjJ24hwX.mjs} +2 -2
  11. package/dist/sentry-app.credential-set-4DLRUKF9.d.mts +59 -0
  12. package/dist/sentry-app.credential-set-Cdj6Qxiz.mjs +23 -0
  13. package/dist/sentry.credential-set-2b3TPFqv.mjs +696 -0
  14. package/dist/view-organization-notification-actions.operation-BI2aB_Mj.mjs +4548 -0
  15. package/dist/view-organization-notification-actions.operation-C7pc8cl_.d.mts +6840 -0
  16. package/package.json +14 -121
  17. package/dist/_official/index.d.mts +0 -41
  18. package/dist/_official/index.mjs +0 -3
  19. package/dist/_runtime/index.d.mts +0 -2
  20. package/dist/_runtime/index.mjs +0 -3
  21. package/dist/alerts.d.mts +0 -462
  22. package/dist/alerts.mjs +0 -300
  23. package/dist/client.d.mts +0 -86
  24. package/dist/client.mjs +0 -233
  25. package/dist/connection.d.mts +0 -3
  26. package/dist/connection.mjs +0 -3
  27. package/dist/dashboards.d.mts +0 -162
  28. package/dist/dashboards.mjs +0 -122
  29. package/dist/debug-files.d.mts +0 -102
  30. package/dist/debug-files.mjs +0 -73
  31. package/dist/deploys.d.mts +0 -86
  32. package/dist/deploys.mjs +0 -67
  33. package/dist/discover.d.mts +0 -194
  34. package/dist/discover.mjs +0 -138
  35. package/dist/endpoint-factory-DcT49a8O.mjs +0 -96
  36. package/dist/environments.d.mts +0 -96
  37. package/dist/environments.mjs +0 -71
  38. package/dist/errors-DfEFwcTe.mjs +0 -142
  39. package/dist/events-api.d.mts +0 -254
  40. package/dist/events-api.mjs +0 -184
  41. package/dist/events.d.mts +0 -754
  42. package/dist/events.mjs +0 -142
  43. package/dist/feedback.d.mts +0 -82
  44. package/dist/feedback.mjs +0 -63
  45. package/dist/integration-D7KCM1-p.mjs +0 -75
  46. package/dist/integration-veqa_7yB.d.mts +0 -33
  47. package/dist/issues.d.mts +0 -458
  48. package/dist/issues.mjs +0 -324
  49. package/dist/members.d.mts +0 -308
  50. package/dist/members.mjs +0 -156
  51. package/dist/messaging.d.mts +0 -1
  52. package/dist/messaging.mjs +0 -1
  53. package/dist/monitors.d.mts +0 -458
  54. package/dist/monitors.mjs +0 -234
  55. package/dist/notifications.d.mts +0 -180
  56. package/dist/notifications.mjs +0 -133
  57. package/dist/organizations.d.mts +0 -442
  58. package/dist/organizations.mjs +0 -334
  59. package/dist/pagination-PlgAqbZt.mjs +0 -116
  60. package/dist/project-keys.d.mts +0 -246
  61. package/dist/project-keys.mjs +0 -122
  62. package/dist/projects.d.mts +0 -534
  63. package/dist/projects.mjs +0 -378
  64. package/dist/releases.d.mts +0 -780
  65. package/dist/releases.mjs +0 -479
  66. package/dist/replays.d.mts +0 -234
  67. package/dist/replays.mjs +0 -192
  68. package/dist/scim.d.mts +0 -324
  69. package/dist/scim.mjs +0 -249
  70. package/dist/scopes-RRU0vt-a.mjs +0 -36
  71. package/dist/teams.d.mts +0 -448
  72. package/dist/teams.mjs +0 -266
  73. package/dist/triggers.d.mts +0 -41
  74. package/dist/triggers.mjs +0 -56
  75. package/dist/user-emails.d.mts +0 -84
  76. package/dist/user-emails.mjs +0 -60
  77. package/dist/verification.d.mts +0 -30
  78. package/dist/verification.mjs +0 -83
  79. package/dist/webhooks.d.mts +0 -158
  80. package/dist/webhooks.mjs +0 -108
@@ -0,0 +1,4548 @@
1
+ import { n as createSentryClient, t as sentryCredentialSet } from "./sentry.credential-set-2b3TPFqv.mjs";
2
+ import { A as sentryNotificationActionSchema, B as sentryReleaseFileSchema, C as sentryJsonArraySchema, D as sentryMetricAlertRuleSchema, E as sentryMemberSchema, G as sentryScimUserSchema, H as sentryReplaySchema, I as sentryProjectDetailsSchema, J as sentryUserEmailSchema, K as sentrySlugSchema, L as sentryProjectHookSchema, M as sentryOrganizationDetailsSchema, O as sentryMonitorSchema, R as sentryProjectKeySchema, T as sentryListInputSchema, U as sentryRepositorySchema, V as sentryReleaseSchema, W as sentryScimGroupSchema, a as orgTeamScopeInputSchema, b as sentryIssueSchema, d as sentryDeploySchema, f as sentryDiscoverSavedQuerySchema, g as sentryIdSchema, h as sentryFeedbackSchema, i as orgScopeInputSchema, l as sentryDashboardSchema, m as sentryEventSchema, n as orgProjectScopeInputSchema, p as sentryEnvironmentSchema, q as sentryTeamSchema, r as orgReleaseScopeInputSchema, s as sentryCommitSchema, t as orgIssueScopeInputSchema, u as sentryDebugFileSchema, w as sentryJsonObjectSchema, x as sentryIssueStatusSchema, y as sentryIssueAlertRuleSchema, z as sentryProjectSummarySchema } from "./sentry-api-DjJ24hwX.mjs";
3
+ import { Operation } from "@keystrokehq/core";
4
+ import { z } from "zod";
5
+
6
+ //#region src/utils/endpoint-factory.ts
7
+ /**
8
+ * Endpoint factory for Sentry management-API operations.
9
+ *
10
+ * Pattern inspired by `kalshi/src/endpoint-factory.ts`: every
11
+ * domain module declares a small table of endpoint specs, and this module
12
+ * emits one operation per entry. Because the Sentry API is deeply
13
+ * regular (REST + path params + optional query + optional body), we can
14
+ * cover 176 actions with ~10 lines of code per endpoint instead of ~40.
15
+ */
16
+ const ORGANIZATION_SLUG_TOKEN = "organization_slug";
17
+ function substitutePath(template, pathParams, input, credentials) {
18
+ let url = template;
19
+ for (const param of pathParams) {
20
+ const raw = input[param.name];
21
+ let value;
22
+ if (typeof raw === "string" && raw.length > 0) value = raw;
23
+ else if (param.name === ORGANIZATION_SLUG_TOKEN && typeof credentials.SENTRY_ORG_SLUG === "string" && credentials.SENTRY_ORG_SLUG.length > 0) value = credentials.SENTRY_ORG_SLUG;
24
+ else throw new Error(`Sentry endpoint requires path param "${param.name}" but it was not supplied on the operation input and could not be inferred from credentials.`);
25
+ url = url.replaceAll(param.placeholder, encodeURIComponent(value));
26
+ }
27
+ if (url.includes("{")) throw new Error(`Sentry endpoint path template "${template}" contains unresolved placeholders; every "{token}" must have a matching pathParams entry.`);
28
+ return url;
29
+ }
30
+ function pickFields(input, fields) {
31
+ if (!fields || fields.length === 0) return void 0;
32
+ const picked = {};
33
+ let any = false;
34
+ for (const key of fields) {
35
+ const value = input[key];
36
+ if (value !== void 0) {
37
+ picked[key] = value;
38
+ any = true;
39
+ }
40
+ }
41
+ return any ? picked : void 0;
42
+ }
43
+ function toBody(input, definition) {
44
+ if (definition.method === "GET" || definition.method === "DELETE") return void 0;
45
+ if (definition.bodyFields && definition.bodyFields.length > 0) return pickFields(input, definition.bodyFields) ?? {};
46
+ return {};
47
+ }
48
+ /** Exported so domain-module tests can exercise path substitution directly. */
49
+ function buildSentryEndpointRequest(definition, input, credentials) {
50
+ return {
51
+ url: substitutePath(definition.path, definition.pathParams ?? [], input, credentials),
52
+ query: pickFields(input, definition.queryFields),
53
+ body: toBody(input, definition)
54
+ };
55
+ }
56
+ async function executeEndpoint(definition, rawInput, credentials) {
57
+ const input = rawInput;
58
+ const client = createSentryClient({
59
+ SENTRY_ACCESS_TOKEN: credentials.SENTRY_ACCESS_TOKEN,
60
+ ...credentials.SENTRY_REGION_URL ? { SENTRY_REGION_URL: credentials.SENTRY_REGION_URL } : {},
61
+ ...credentials.SENTRY_ORG_SLUG ? { SENTRY_ORG_SLUG: credentials.SENTRY_ORG_SLUG } : {}
62
+ });
63
+ const { url, query, body } = buildSentryEndpointRequest(definition, input, credentials);
64
+ if (definition.pagination === "cursor") {
65
+ const items = [];
66
+ for await (const page of client.paginate(url, query ?? {})) if (Array.isArray(page.data)) items.push(...page.data);
67
+ else items.push(page.data);
68
+ return items;
69
+ }
70
+ switch (definition.method) {
71
+ case "GET": return (await client.get(url, query)).data;
72
+ case "POST": return (await client.post(url, body, query)).data;
73
+ case "PUT": return (await client.put(url, body, query)).data;
74
+ case "PATCH": return (await client.patch(url, body, query)).data;
75
+ case "DELETE": return (await client.delete(url, query)).data;
76
+ }
77
+ }
78
+ /**
79
+ * Materializes a single Sentry endpoint definition into an `Operation`
80
+ * wrapped with the official-integration factory.
81
+ */
82
+ function defineSentryEndpoint(definition, credentialSet = sentryCredentialSet) {
83
+ return new Operation({
84
+ credentialSets: [credentialSet],
85
+ id: definition.id,
86
+ name: definition.name,
87
+ description: definition.description,
88
+ input: definition.input,
89
+ output: definition.output,
90
+ ...definition.needsApproval ? { needsApproval: true } : {},
91
+ ...definition.requiredOAuthScopes ? { requiredOAuthScopes: definition.requiredOAuthScopes } : {},
92
+ run: async (input, context) => {
93
+ return await executeEndpoint(definition, input, context.credentials.sentry);
94
+ }
95
+ });
96
+ }
97
+
98
+ //#endregion
99
+ //#region src/utils/scopes.ts
100
+ /**
101
+ * Centralised OAuth scope constants for Sentry.
102
+ *
103
+ * Every exported operation declares the minimum set of scopes the platform
104
+ * must see on the connected token before invoking it. These drive the
105
+ * per-operation scope-composition check that `@keystrokehq/core`
106
+ * performs at runtime (see #263).
107
+ *
108
+ * Scope strings are lifted verbatim from Sentry's API permission matrix at
109
+ * <https://docs.sentry.io/api/permissions/>.
110
+ */
111
+ const SENTRY_SCOPE = {
112
+ orgRead: ["org:read"],
113
+ orgWrite: ["org:write"],
114
+ orgAdmin: ["org:admin"],
115
+ memberRead: ["member:read"],
116
+ memberWrite: ["member:write"],
117
+ memberAdmin: ["member:admin"],
118
+ teamRead: ["team:read"],
119
+ teamWrite: ["team:write"],
120
+ teamAdmin: ["team:admin"],
121
+ projectRead: ["project:read"],
122
+ projectWrite: ["project:write"],
123
+ projectAdmin: ["project:admin"],
124
+ projectReleases: ["project:releases"],
125
+ eventRead: ["event:read"],
126
+ eventWrite: ["event:write"],
127
+ eventAdmin: ["event:admin"],
128
+ alertsRead: ["alerts:read"],
129
+ alertsWrite: ["alerts:write"],
130
+ releaseAdmin: ["release:admin"]
131
+ };
132
+
133
+ //#endregion
134
+ //#region src/utils/projects-endpoints.ts
135
+ /**
136
+ * Sentry project operations. Maps to PLAN.md §6.4 (19 actions).
137
+ */
138
+ const ORG_PROJECT$8 = [{
139
+ name: "organization_slug",
140
+ placeholder: "{organization_slug}"
141
+ }, {
142
+ name: "project_slug",
143
+ placeholder: "{project_slug}"
144
+ }];
145
+ const ORG_PROJECT_TEAM = [...ORG_PROJECT$8, {
146
+ name: "team_slug",
147
+ placeholder: "{team_slug}"
148
+ }];
149
+ const ORG_TEAM_FOR_PROJECT = [{
150
+ name: "organization_slug",
151
+ placeholder: "{organization_slug}"
152
+ }, {
153
+ name: "team_slug",
154
+ placeholder: "{team_slug}"
155
+ }];
156
+ const accessProjectInformationDefinition = {
157
+ id: "sentry.access-project-information",
158
+ name: "Access Project Information",
159
+ description: "Fetch a project by its org slug + project slug.",
160
+ method: "GET",
161
+ path: "/api/0/projects/{organization_slug}/{project_slug}/",
162
+ pathParams: ORG_PROJECT$8,
163
+ input: orgProjectScopeInputSchema,
164
+ output: sentryProjectDetailsSchema,
165
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
166
+ };
167
+ const getProjectListDefinition = {
168
+ id: "sentry.get-project-list",
169
+ name: "List Projects",
170
+ description: "List projects visible to the authenticated token across all orgs.",
171
+ method: "GET",
172
+ path: "/api/0/projects/",
173
+ input: sentryListInputSchema,
174
+ queryFields: [
175
+ "cursor",
176
+ "per_page",
177
+ "query"
178
+ ],
179
+ output: z.array(sentryProjectSummarySchema),
180
+ pagination: "cursor",
181
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
182
+ };
183
+ const updateProjectDetailsDefinition = {
184
+ id: "sentry.update-project-details",
185
+ name: "Update Project Details",
186
+ description: "Patch project-level settings.",
187
+ method: "PUT",
188
+ path: "/api/0/projects/{organization_slug}/{project_slug}/",
189
+ pathParams: ORG_PROJECT$8,
190
+ input: orgProjectScopeInputSchema.extend({
191
+ name: z.string().min(1).optional(),
192
+ slug: sentrySlugSchema.optional(),
193
+ platform: z.string().optional(),
194
+ team: sentrySlugSchema.optional(),
195
+ digestsMinDelay: z.number().int().optional(),
196
+ digestsMaxDelay: z.number().int().optional(),
197
+ resolveAge: z.number().int().optional(),
198
+ dataScrubber: z.boolean().optional(),
199
+ dataScrubberDefaults: z.boolean().optional(),
200
+ sensitiveFields: z.array(z.string()).optional(),
201
+ safeFields: z.array(z.string()).optional(),
202
+ scrubIPAddresses: z.boolean().optional(),
203
+ storeCrashReports: z.number().int().optional(),
204
+ relayPiiConfig: z.string().optional(),
205
+ allowedDomains: z.array(z.string()).optional()
206
+ }),
207
+ bodyFields: [
208
+ "name",
209
+ "slug",
210
+ "platform",
211
+ "team",
212
+ "digestsMinDelay",
213
+ "digestsMaxDelay",
214
+ "resolveAge",
215
+ "dataScrubber",
216
+ "dataScrubberDefaults",
217
+ "sensitiveFields",
218
+ "safeFields",
219
+ "scrubIPAddresses",
220
+ "storeCrashReports",
221
+ "relayPiiConfig",
222
+ "allowedDomains"
223
+ ],
224
+ output: sentryProjectDetailsSchema,
225
+ needsApproval: true,
226
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectWrite]
227
+ };
228
+ const deleteProjectByIdDefinition = {
229
+ id: "sentry.delete-project-by-id",
230
+ name: "Delete Project",
231
+ description: "Delete a project by slug.",
232
+ method: "DELETE",
233
+ path: "/api/0/projects/{organization_slug}/{project_slug}/",
234
+ pathParams: ORG_PROJECT$8,
235
+ input: orgProjectScopeInputSchema,
236
+ output: z.unknown(),
237
+ needsApproval: true,
238
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectAdmin]
239
+ };
240
+ const createTeamProjectForOrganizationDefinition = {
241
+ id: "sentry.create-team-project-for-organization",
242
+ name: "Create Team Project",
243
+ description: "Create a new project owned by a team.",
244
+ method: "POST",
245
+ path: "/api/0/teams/{organization_slug}/{team_slug}/projects/",
246
+ pathParams: ORG_TEAM_FOR_PROJECT,
247
+ input: z.object({
248
+ organization_slug: sentrySlugSchema.optional(),
249
+ team_slug: sentrySlugSchema,
250
+ name: z.string().min(1),
251
+ slug: sentrySlugSchema.optional(),
252
+ platform: z.string().optional(),
253
+ default_rules: z.boolean().optional()
254
+ }),
255
+ bodyFields: [
256
+ "name",
257
+ "slug",
258
+ "platform",
259
+ "default_rules"
260
+ ],
261
+ output: sentryProjectDetailsSchema,
262
+ needsApproval: true,
263
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectWrite]
264
+ };
265
+ const addTeamToProjectDefinition = {
266
+ id: "sentry.add-team-to-project",
267
+ name: "Add Team To Project",
268
+ description: "Grant a team access to an existing project.",
269
+ method: "POST",
270
+ path: "/api/0/projects/{organization_slug}/{project_slug}/teams/{team_slug}/",
271
+ pathParams: ORG_PROJECT_TEAM,
272
+ input: orgProjectScopeInputSchema.extend({ team_slug: sentrySlugSchema }),
273
+ output: sentryProjectDetailsSchema,
274
+ needsApproval: true,
275
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectWrite]
276
+ };
277
+ const retrieveProjectTeamsDefinition = {
278
+ id: "sentry.retrieve-project-teams",
279
+ name: "Retrieve Project Teams",
280
+ description: "List the teams that own a project.",
281
+ method: "GET",
282
+ path: "/api/0/projects/{organization_slug}/{project_slug}/teams/",
283
+ pathParams: ORG_PROJECT$8,
284
+ input: sentryListInputSchema.merge(orgProjectScopeInputSchema),
285
+ queryFields: [
286
+ "cursor",
287
+ "per_page",
288
+ "query"
289
+ ],
290
+ output: z.array(sentryTeamSchema),
291
+ pagination: "cursor",
292
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
293
+ };
294
+ const deleteProjectTeamAssociationDefinition = {
295
+ id: "sentry.delete-project-team-association",
296
+ name: "Delete Project Team Association",
297
+ description: "Revoke a team’s access to a project.",
298
+ method: "DELETE",
299
+ path: "/api/0/projects/{organization_slug}/{project_slug}/teams/{team_slug}/",
300
+ pathParams: ORG_PROJECT_TEAM,
301
+ input: orgProjectScopeInputSchema.extend({ team_slug: sentrySlugSchema }),
302
+ output: z.unknown(),
303
+ needsApproval: true,
304
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectWrite]
305
+ };
306
+ const retrieveProjectMembersListDefinition = {
307
+ id: "sentry.retrieve-project-members-list",
308
+ name: "Retrieve Project Members",
309
+ description: "List the members who have access to a project.",
310
+ method: "GET",
311
+ path: "/api/0/projects/{organization_slug}/{project_slug}/members/",
312
+ pathParams: ORG_PROJECT$8,
313
+ input: sentryListInputSchema.merge(orgProjectScopeInputSchema),
314
+ queryFields: [
315
+ "cursor",
316
+ "per_page",
317
+ "query"
318
+ ],
319
+ output: z.array(sentryMemberSchema),
320
+ pagination: "cursor",
321
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
322
+ };
323
+ const listProjectUsersDefinition = {
324
+ id: "sentry.list-project-users",
325
+ name: "List Project Users",
326
+ description: "List distinct end users who have reported events for a project.",
327
+ method: "GET",
328
+ path: "/api/0/projects/{organization_slug}/{project_slug}/users/",
329
+ pathParams: ORG_PROJECT$8,
330
+ input: sentryListInputSchema.merge(orgProjectScopeInputSchema),
331
+ queryFields: [
332
+ "cursor",
333
+ "per_page",
334
+ "query"
335
+ ],
336
+ output: sentryJsonArraySchema,
337
+ pagination: "cursor",
338
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
339
+ };
340
+ const retrieveProjectFilterDataDefinition = {
341
+ id: "sentry.retrieve-project-filter-data",
342
+ name: "Retrieve Project Filter Data",
343
+ description: "Return project-level inbound filter configuration.",
344
+ method: "GET",
345
+ path: "/api/0/projects/{organization_slug}/{project_slug}/filters/",
346
+ pathParams: ORG_PROJECT$8,
347
+ input: orgProjectScopeInputSchema,
348
+ output: sentryJsonArraySchema,
349
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
350
+ };
351
+ const toggleProjectFilterStatusDefinition = {
352
+ id: "sentry.toggle-project-filter-status",
353
+ name: "Toggle Project Filter",
354
+ description: "Enable or disable a single project inbound filter by id.",
355
+ method: "PUT",
356
+ path: "/api/0/projects/{organization_slug}/{project_slug}/filters/{filter_id}/",
357
+ pathParams: [...ORG_PROJECT$8, {
358
+ name: "filter_id",
359
+ placeholder: "{filter_id}"
360
+ }],
361
+ input: orgProjectScopeInputSchema.extend({
362
+ filter_id: z.string().min(1),
363
+ active: z.union([z.boolean(), z.array(z.string())]).optional(),
364
+ subfilters: z.array(z.string()).optional()
365
+ }),
366
+ bodyFields: ["active", "subfilters"],
367
+ output: sentryJsonObjectSchema,
368
+ needsApproval: true,
369
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectWrite]
370
+ };
371
+ const fetchProjectOwnershipDetailsDefinition = {
372
+ id: "sentry.fetch-project-ownership-details",
373
+ name: "Fetch Project Ownership",
374
+ description: "Retrieve a project’s ownership rules configuration.",
375
+ method: "GET",
376
+ path: "/api/0/projects/{organization_slug}/{project_slug}/ownership/",
377
+ pathParams: ORG_PROJECT$8,
378
+ input: orgProjectScopeInputSchema,
379
+ output: sentryJsonObjectSchema,
380
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
381
+ };
382
+ const updateProjectOwnershipSettingsDefinition = {
383
+ id: "sentry.update-project-ownership-settings",
384
+ name: "Update Project Ownership",
385
+ description: "Update a project’s ownership rule set and fallthrough.",
386
+ method: "PUT",
387
+ path: "/api/0/projects/{organization_slug}/{project_slug}/ownership/",
388
+ pathParams: ORG_PROJECT$8,
389
+ input: orgProjectScopeInputSchema.extend({
390
+ raw: z.string().optional(),
391
+ fallthrough: z.boolean().optional(),
392
+ autoAssignment: z.enum([
393
+ "Auto Assign to Issue Owner",
394
+ "Auto Assign to Suspect Commits",
395
+ "Turn off Auto-Assignment"
396
+ ]).optional(),
397
+ codeownersAutoSync: z.boolean().optional()
398
+ }),
399
+ bodyFields: [
400
+ "raw",
401
+ "fallthrough",
402
+ "autoAssignment",
403
+ "codeownersAutoSync"
404
+ ],
405
+ output: sentryJsonObjectSchema,
406
+ needsApproval: true,
407
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectWrite]
408
+ };
409
+ const retrieveProjectTagValuesDefinition = {
410
+ id: "sentry.retrieve-project-tag-values",
411
+ name: "Retrieve Project Tag Values",
412
+ description: "List the distinct values observed for a given tag key on a project.",
413
+ method: "GET",
414
+ path: "/api/0/projects/{organization_slug}/{project_slug}/tags/{tag_key}/values/",
415
+ pathParams: [...ORG_PROJECT$8, {
416
+ name: "tag_key",
417
+ placeholder: "{tag_key}"
418
+ }],
419
+ input: sentryListInputSchema.merge(orgProjectScopeInputSchema).extend({ tag_key: z.string().min(1) }),
420
+ queryFields: [
421
+ "cursor",
422
+ "per_page",
423
+ "query"
424
+ ],
425
+ output: sentryJsonArraySchema,
426
+ pagination: "cursor",
427
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
428
+ };
429
+ const postProjectSymbolSourcesDefinition = {
430
+ id: "sentry.post-project-symbol-sources",
431
+ name: "Create Project Symbol Source",
432
+ description: "Register a new custom symbol source on a project.",
433
+ method: "POST",
434
+ path: "/api/0/projects/{organization_slug}/{project_slug}/symbol-sources/",
435
+ pathParams: ORG_PROJECT$8,
436
+ input: orgProjectScopeInputSchema.extend({ source: sentryJsonObjectSchema }),
437
+ bodyFields: ["source"],
438
+ output: sentryJsonObjectSchema,
439
+ needsApproval: true,
440
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectAdmin]
441
+ };
442
+ const retrieveProjectSymbolSourcesDefinition = {
443
+ id: "sentry.retrieve-project-symbol-sources",
444
+ name: "Retrieve Project Symbol Sources",
445
+ description: "List the custom symbol sources configured on a project.",
446
+ method: "GET",
447
+ path: "/api/0/projects/{organization_slug}/{project_slug}/symbol-sources/",
448
+ pathParams: ORG_PROJECT$8,
449
+ input: orgProjectScopeInputSchema,
450
+ output: sentryJsonArraySchema,
451
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectAdmin]
452
+ };
453
+ const updateSymbolSourceSettingsDefinition = {
454
+ id: "sentry.update-symbol-source-settings",
455
+ name: "Update Project Symbol Source",
456
+ description: "Update a project symbol source by its id.",
457
+ method: "PUT",
458
+ path: "/api/0/projects/{organization_slug}/{project_slug}/symbol-sources/",
459
+ pathParams: ORG_PROJECT$8,
460
+ input: orgProjectScopeInputSchema.extend({
461
+ id: sentryIdSchema,
462
+ source: sentryJsonObjectSchema
463
+ }),
464
+ queryFields: ["id"],
465
+ bodyFields: ["source"],
466
+ output: sentryJsonObjectSchema,
467
+ needsApproval: true,
468
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectAdmin]
469
+ };
470
+ const deleteProjectSymbolSourcesDefinition = {
471
+ id: "sentry.delete-project-symbol-sources",
472
+ name: "Delete Project Symbol Source",
473
+ description: "Delete a project symbol source by id.",
474
+ method: "DELETE",
475
+ path: "/api/0/projects/{organization_slug}/{project_slug}/symbol-sources/",
476
+ pathParams: ORG_PROJECT$8,
477
+ input: orgProjectScopeInputSchema.extend({ id: sentryIdSchema }),
478
+ queryFields: ["id"],
479
+ output: z.unknown(),
480
+ needsApproval: true,
481
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectAdmin]
482
+ };
483
+
484
+ //#endregion
485
+ //#region src/operations/access-project-information.operation.ts
486
+ const accessProjectInformationOperation = defineSentryEndpoint(accessProjectInformationDefinition, sentryCredentialSet);
487
+
488
+ //#endregion
489
+ //#region src/utils/members-endpoints.ts
490
+ /**
491
+ * Sentry organization member operations. Maps to PLAN.md §6.2 (7 actions).
492
+ */
493
+ const ORG$11 = [{
494
+ name: "organization_slug",
495
+ placeholder: "{organization_slug}"
496
+ }];
497
+ const ORG_MEMBER = [...ORG$11, {
498
+ name: "member_id",
499
+ placeholder: "{member_id}"
500
+ }];
501
+ const listOrganizationMembersDefinition = {
502
+ id: "sentry.list-organization-members",
503
+ name: "List Organization Members",
504
+ description: "List the members of an organization with pagination.",
505
+ method: "GET",
506
+ path: "/api/0/organizations/{organization_slug}/members/",
507
+ pathParams: ORG$11,
508
+ input: sentryListInputSchema.merge(orgScopeInputSchema),
509
+ queryFields: [
510
+ "query",
511
+ "cursor",
512
+ "per_page"
513
+ ],
514
+ output: z.array(sentryMemberSchema),
515
+ pagination: "cursor",
516
+ requiredOAuthScopes: [...SENTRY_SCOPE.memberRead]
517
+ };
518
+ const retrieveOrganizationMemberDefinition = {
519
+ id: "sentry.retrieve-organization-member",
520
+ name: "Retrieve Organization Member",
521
+ description: "Fetch a single organization member by id.",
522
+ method: "GET",
523
+ path: "/api/0/organizations/{organization_slug}/members/{member_id}/",
524
+ pathParams: ORG_MEMBER,
525
+ input: orgScopeInputSchema.extend({ member_id: sentryIdSchema }),
526
+ output: sentryMemberSchema,
527
+ requiredOAuthScopes: [...SENTRY_SCOPE.memberRead]
528
+ };
529
+ const addOrganizationMemberViaEmailDefinition = {
530
+ id: "sentry.add-organization-member-via-email",
531
+ name: "Invite Member by Email",
532
+ description: "Invite a new member by email address with an optional org role and team list.",
533
+ method: "POST",
534
+ path: "/api/0/organizations/{organization_slug}/members/",
535
+ pathParams: ORG$11,
536
+ input: orgScopeInputSchema.extend({
537
+ email: z.string().email(),
538
+ role: z.string().optional(),
539
+ orgRole: z.string().optional(),
540
+ teams: z.array(z.string()).optional(),
541
+ teamRoles: z.array(z.object({
542
+ teamSlug: z.string(),
543
+ role: z.string().nullable()
544
+ })).optional(),
545
+ sendInvite: z.boolean().optional(),
546
+ reinvite: z.boolean().optional()
547
+ }),
548
+ bodyFields: [
549
+ "email",
550
+ "role",
551
+ "orgRole",
552
+ "teams",
553
+ "teamRoles",
554
+ "sendInvite",
555
+ "reinvite"
556
+ ],
557
+ output: sentryMemberSchema,
558
+ needsApproval: true,
559
+ requiredOAuthScopes: [...SENTRY_SCOPE.memberWrite]
560
+ };
561
+ const updateOrganizationMemberRoleDefinition = {
562
+ id: "sentry.update-organization-member-role",
563
+ name: "Update Member Role",
564
+ description: "Update an organization member’s role and/or team assignments.",
565
+ method: "PUT",
566
+ path: "/api/0/organizations/{organization_slug}/members/{member_id}/",
567
+ pathParams: ORG_MEMBER,
568
+ input: orgScopeInputSchema.extend({
569
+ member_id: sentryIdSchema,
570
+ role: z.string().optional(),
571
+ orgRole: z.string().optional(),
572
+ teams: z.array(z.string()).optional(),
573
+ teamRoles: z.array(z.object({
574
+ teamSlug: z.string(),
575
+ role: z.string().nullable()
576
+ })).optional()
577
+ }),
578
+ bodyFields: [
579
+ "role",
580
+ "orgRole",
581
+ "teams",
582
+ "teamRoles"
583
+ ],
584
+ output: sentryMemberSchema,
585
+ needsApproval: true,
586
+ requiredOAuthScopes: [...SENTRY_SCOPE.memberWrite]
587
+ };
588
+ const deleteOrganizationMemberDefinition = {
589
+ id: "sentry.delete-organization-member",
590
+ name: "Delete Organization Member",
591
+ description: "Remove a member from the organization.",
592
+ method: "DELETE",
593
+ path: "/api/0/organizations/{organization_slug}/members/{member_id}/",
594
+ pathParams: ORG_MEMBER,
595
+ input: orgScopeInputSchema.extend({ member_id: sentryIdSchema }),
596
+ output: z.unknown(),
597
+ needsApproval: true,
598
+ requiredOAuthScopes: [...SENTRY_SCOPE.memberAdmin]
599
+ };
600
+ const patchUserActiveStatusInOrganizationDefinition = {
601
+ id: "sentry.patch-user-active-status-in-organization",
602
+ name: "Update Member Active Status",
603
+ description: "Toggle a member’s active flag without removing them.",
604
+ method: "PATCH",
605
+ path: "/api/0/organizations/{organization_slug}/members/{member_id}/",
606
+ pathParams: ORG_MEMBER,
607
+ input: orgScopeInputSchema.extend({
608
+ member_id: sentryIdSchema,
609
+ active: z.boolean()
610
+ }),
611
+ bodyFields: ["active"],
612
+ output: sentryMemberSchema,
613
+ needsApproval: true,
614
+ requiredOAuthScopes: [...SENTRY_SCOPE.memberWrite]
615
+ };
616
+ const deleteUserFromOrgDefinition = {
617
+ id: "sentry.delete-user-from-org",
618
+ name: "Delete User From Organization",
619
+ description: "Alias of `delete_organization_member`. Kept for Composio parity.",
620
+ method: "DELETE",
621
+ path: "/api/0/organizations/{organization_slug}/members/{member_id}/",
622
+ pathParams: ORG_MEMBER,
623
+ input: orgScopeInputSchema.extend({ member_id: sentryIdSchema }),
624
+ output: z.unknown(),
625
+ needsApproval: true,
626
+ requiredOAuthScopes: [...SENTRY_SCOPE.memberAdmin]
627
+ };
628
+
629
+ //#endregion
630
+ //#region src/operations/add-organization-member-via-email.operation.ts
631
+ const addOrganizationMemberViaEmailOperation = defineSentryEndpoint(addOrganizationMemberViaEmailDefinition, sentryCredentialSet);
632
+
633
+ //#endregion
634
+ //#region src/utils/user-emails-endpoints.ts
635
+ /**
636
+ * Sentry user-email operations (current-user account scope).
637
+ * Maps to PLAN.md §6.21 (4 actions).
638
+ */
639
+ const retrieveUserEmailInformationDefinition = {
640
+ id: "sentry.retrieve-user-email-information",
641
+ name: "Retrieve User Emails",
642
+ description: "List the emails on the authenticated Sentry account.",
643
+ method: "GET",
644
+ path: "/api/0/users/me/emails/",
645
+ input: z.object({}),
646
+ output: z.array(sentryUserEmailSchema)
647
+ };
648
+ const addRemoveUserEmailByIdDefinition = {
649
+ id: "sentry.add-remove-user-email-by-id",
650
+ name: "Add User Email",
651
+ description: "Add a new email to the authenticated Sentry account.",
652
+ method: "POST",
653
+ path: "/api/0/users/me/emails/",
654
+ input: z.object({ email: z.string().email() }),
655
+ bodyFields: ["email"],
656
+ output: sentryUserEmailSchema,
657
+ needsApproval: true
658
+ };
659
+ const updateUserEmailDefinition = {
660
+ id: "sentry.update-user-email",
661
+ name: "Set Primary Email",
662
+ description: "Mark an email as the primary address on the authenticated account.",
663
+ method: "PUT",
664
+ path: "/api/0/users/me/emails/",
665
+ input: z.object({ email: z.string().email() }),
666
+ bodyFields: ["email"],
667
+ output: sentryUserEmailSchema,
668
+ needsApproval: true
669
+ };
670
+ const deleteUserEmailsByIdDefinition = {
671
+ id: "sentry.delete-user-emails-by-id",
672
+ name: "Delete User Email",
673
+ description: "Remove an email from the authenticated Sentry account.",
674
+ method: "DELETE",
675
+ path: "/api/0/users/me/emails/",
676
+ input: z.object({ email: z.string().email() }),
677
+ queryFields: ["email"],
678
+ output: z.unknown(),
679
+ needsApproval: true
680
+ };
681
+
682
+ //#endregion
683
+ //#region src/operations/add-remove-user-email-by-id.operation.ts
684
+ const addRemoveUserEmailByIdOperation = defineSentryEndpoint(addRemoveUserEmailByIdDefinition, sentryCredentialSet);
685
+
686
+ //#endregion
687
+ //#region src/utils/teams-endpoints.ts
688
+ /**
689
+ * Sentry team operations. Maps to PLAN.md §6.3 (14 actions).
690
+ */
691
+ const ORG$10 = [{
692
+ name: "organization_slug",
693
+ placeholder: "{organization_slug}"
694
+ }];
695
+ const ORG_TEAM = [...ORG$10, {
696
+ name: "team_slug",
697
+ placeholder: "{team_slug}"
698
+ }];
699
+ const ORG_TEAM_MEMBER = [...ORG_TEAM, {
700
+ name: "member_id",
701
+ placeholder: "{member_id}"
702
+ }];
703
+ const listTeamsInOrganizationDefinition = {
704
+ id: "sentry.list-teams-in-organization",
705
+ name: "List Teams In Organization",
706
+ description: "List the teams in an organization with pagination.",
707
+ method: "GET",
708
+ path: "/api/0/organizations/{organization_slug}/teams/",
709
+ pathParams: ORG$10,
710
+ input: sentryListInputSchema.merge(orgScopeInputSchema).extend({ detailed: z.string().optional() }),
711
+ queryFields: [
712
+ "query",
713
+ "cursor",
714
+ "per_page",
715
+ "detailed"
716
+ ],
717
+ output: z.array(sentryTeamSchema),
718
+ pagination: "cursor",
719
+ requiredOAuthScopes: [...SENTRY_SCOPE.teamRead]
720
+ };
721
+ const listOrganizationUserTeamsDefinition = {
722
+ id: "sentry.list-organization-user-teams",
723
+ name: "List Teams For Current User",
724
+ description: "List the teams the authenticated user belongs to in this organization.",
725
+ method: "GET",
726
+ path: "/api/0/organizations/{organization_slug}/user-teams/",
727
+ pathParams: ORG$10,
728
+ input: orgScopeInputSchema,
729
+ output: z.array(sentryTeamSchema),
730
+ requiredOAuthScopes: [...SENTRY_SCOPE.teamRead]
731
+ };
732
+ const createOrganizationTeamDefinition = {
733
+ id: "sentry.create-organization-team",
734
+ name: "Create Organization Team",
735
+ description: "Create a new team inside the organization.",
736
+ method: "POST",
737
+ path: "/api/0/organizations/{organization_slug}/teams/",
738
+ pathParams: ORG$10,
739
+ input: orgScopeInputSchema.extend({
740
+ slug: sentrySlugSchema.optional(),
741
+ name: z.string().min(1).optional(),
742
+ idp_provisioned: z.boolean().optional()
743
+ }),
744
+ bodyFields: [
745
+ "slug",
746
+ "name",
747
+ "idp_provisioned"
748
+ ],
749
+ output: sentryTeamSchema,
750
+ needsApproval: true,
751
+ requiredOAuthScopes: [...SENTRY_SCOPE.teamWrite]
752
+ };
753
+ const retrieveTeamInfoViaOrganizationIdOrSlugDefinition = {
754
+ id: "sentry.retrieve-team-info-via-organization-id-or-slug",
755
+ name: "Retrieve Team Info",
756
+ description: "Fetch a single team by its slug.",
757
+ method: "GET",
758
+ path: "/api/0/teams/{organization_slug}/{team_slug}/",
759
+ pathParams: ORG_TEAM,
760
+ input: orgTeamScopeInputSchema,
761
+ output: sentryTeamSchema,
762
+ requiredOAuthScopes: [...SENTRY_SCOPE.teamRead]
763
+ };
764
+ const updateTeamInformationByOrganizationIdDefinition = {
765
+ id: "sentry.update-team-information-by-organization-id",
766
+ name: "Update Team",
767
+ description: "Update a team’s slug or display name.",
768
+ method: "PUT",
769
+ path: "/api/0/teams/{organization_slug}/{team_slug}/",
770
+ pathParams: ORG_TEAM,
771
+ input: orgTeamScopeInputSchema.extend({
772
+ slug: sentrySlugSchema.optional(),
773
+ name: z.string().min(1).optional()
774
+ }),
775
+ bodyFields: ["slug", "name"],
776
+ output: sentryTeamSchema,
777
+ needsApproval: true,
778
+ requiredOAuthScopes: [...SENTRY_SCOPE.teamWrite]
779
+ };
780
+ const deleteTeamByOrganizationOrTeamSlugDefinition = {
781
+ id: "sentry.delete-team-by-organization-or-team-slug",
782
+ name: "Delete Team",
783
+ description: "Delete a team by slug.",
784
+ method: "DELETE",
785
+ path: "/api/0/teams/{organization_slug}/{team_slug}/",
786
+ pathParams: ORG_TEAM,
787
+ input: orgTeamScopeInputSchema,
788
+ output: z.unknown(),
789
+ needsApproval: true,
790
+ requiredOAuthScopes: [...SENTRY_SCOPE.teamAdmin]
791
+ };
792
+ const addTeamMemberInOrganizationDefinition = {
793
+ id: "sentry.add-team-member-in-organization",
794
+ name: "Add Team Member",
795
+ description: "Add a member to a team.",
796
+ method: "POST",
797
+ path: "/api/0/organizations/{organization_slug}/members/{member_id}/teams/{team_slug}/",
798
+ pathParams: ORG_TEAM_MEMBER,
799
+ input: orgTeamScopeInputSchema.extend({ member_id: sentryIdSchema }),
800
+ output: sentryMemberSchema,
801
+ needsApproval: true,
802
+ requiredOAuthScopes: [...SENTRY_SCOPE.teamWrite]
803
+ };
804
+ const getTeamMembersByIdOrSlugDefinition = {
805
+ id: "sentry.get-team-members-by-id-or-slug",
806
+ name: "Get Team Members",
807
+ description: "List the members of a team.",
808
+ method: "GET",
809
+ path: "/api/0/teams/{organization_slug}/{team_slug}/members/",
810
+ pathParams: ORG_TEAM,
811
+ input: sentryListInputSchema.merge(orgTeamScopeInputSchema),
812
+ queryFields: [
813
+ "cursor",
814
+ "per_page",
815
+ "query"
816
+ ],
817
+ output: z.array(sentryMemberSchema),
818
+ pagination: "cursor",
819
+ requiredOAuthScopes: [...SENTRY_SCOPE.teamRead]
820
+ };
821
+ const deleteMemberFromTeamDefinition = {
822
+ id: "sentry.delete-member-from-team",
823
+ name: "Remove Member From Team",
824
+ description: "Remove a member from a team.",
825
+ method: "DELETE",
826
+ path: "/api/0/organizations/{organization_slug}/members/{member_id}/teams/{team_slug}/",
827
+ pathParams: ORG_TEAM_MEMBER,
828
+ input: orgTeamScopeInputSchema.extend({ member_id: sentryIdSchema }),
829
+ output: z.unknown(),
830
+ needsApproval: true,
831
+ requiredOAuthScopes: [...SENTRY_SCOPE.teamWrite]
832
+ };
833
+ const switchTeamRoleForMemberDefinition = {
834
+ id: "sentry.switch-team-role-for-member",
835
+ name: "Switch Member Team Role",
836
+ description: "Update a member’s role within a team.",
837
+ method: "PUT",
838
+ path: "/api/0/organizations/{organization_slug}/members/{member_id}/teams/{team_slug}/",
839
+ pathParams: ORG_TEAM_MEMBER,
840
+ input: orgTeamScopeInputSchema.extend({
841
+ member_id: sentryIdSchema,
842
+ teamRole: z.string().nullable()
843
+ }),
844
+ bodyFields: ["teamRole"],
845
+ output: sentryMemberSchema,
846
+ needsApproval: true,
847
+ requiredOAuthScopes: [...SENTRY_SCOPE.teamWrite]
848
+ };
849
+ const retrieveTeamProjectsDefinition = {
850
+ id: "sentry.retrieve-team-projects",
851
+ name: "Retrieve Team Projects",
852
+ description: "List the projects owned by a team.",
853
+ method: "GET",
854
+ path: "/api/0/teams/{organization_slug}/{team_slug}/projects/",
855
+ pathParams: ORG_TEAM,
856
+ input: sentryListInputSchema.merge(orgTeamScopeInputSchema),
857
+ queryFields: [
858
+ "cursor",
859
+ "per_page",
860
+ "query"
861
+ ],
862
+ output: z.array(sentryProjectSummarySchema),
863
+ pagination: "cursor",
864
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
865
+ };
866
+ const manageTeamExternalIntegrationsDefinition = {
867
+ id: "sentry.manage-team-external-integrations",
868
+ name: "Manage Team External Integrations",
869
+ description: "Create an external-team link between a Sentry team and a third-party team (Slack, PagerDuty, etc.).",
870
+ method: "POST",
871
+ path: "/api/0/teams/{organization_slug}/{team_slug}/external-teams/",
872
+ pathParams: ORG_TEAM,
873
+ input: orgTeamScopeInputSchema.extend({
874
+ externalName: z.string().min(1),
875
+ provider: z.string().min(1),
876
+ externalId: z.string().optional(),
877
+ integrationId: z.string().optional()
878
+ }),
879
+ bodyFields: [
880
+ "externalName",
881
+ "provider",
882
+ "externalId",
883
+ "integrationId"
884
+ ],
885
+ output: sentryJsonObjectSchema,
886
+ needsApproval: true,
887
+ requiredOAuthScopes: [...SENTRY_SCOPE.teamWrite]
888
+ };
889
+ const updateExternalTeamIntegrationDefinition = {
890
+ id: "sentry.update-external-team-integration",
891
+ name: "Update External Team Integration",
892
+ description: "Update an existing external-team link by id.",
893
+ method: "PUT",
894
+ path: "/api/0/teams/{organization_slug}/{team_slug}/external-teams/{external_team_id}/",
895
+ pathParams: [...ORG_TEAM, {
896
+ name: "external_team_id",
897
+ placeholder: "{external_team_id}"
898
+ }],
899
+ input: orgTeamScopeInputSchema.extend({
900
+ external_team_id: sentryIdSchema,
901
+ externalName: z.string().min(1).optional(),
902
+ integrationId: z.string().optional(),
903
+ externalId: z.string().optional()
904
+ }),
905
+ bodyFields: [
906
+ "externalName",
907
+ "integrationId",
908
+ "externalId"
909
+ ],
910
+ output: sentryJsonObjectSchema,
911
+ needsApproval: true,
912
+ requiredOAuthScopes: [...SENTRY_SCOPE.teamWrite]
913
+ };
914
+ const deleteExternalTeamByIdDefinition = {
915
+ id: "sentry.delete-external-team-by-id",
916
+ name: "Delete External Team",
917
+ description: "Remove an external-team link by id.",
918
+ method: "DELETE",
919
+ path: "/api/0/teams/{organization_slug}/{team_slug}/external-teams/{external_team_id}/",
920
+ pathParams: [...ORG_TEAM, {
921
+ name: "external_team_id",
922
+ placeholder: "{external_team_id}"
923
+ }],
924
+ input: orgTeamScopeInputSchema.extend({ external_team_id: sentryIdSchema }),
925
+ output: z.unknown(),
926
+ needsApproval: true,
927
+ requiredOAuthScopes: [...SENTRY_SCOPE.teamAdmin]
928
+ };
929
+
930
+ //#endregion
931
+ //#region src/operations/add-team-member-in-organization.operation.ts
932
+ const addTeamMemberInOrganizationOperation = defineSentryEndpoint(addTeamMemberInOrganizationDefinition, sentryCredentialSet);
933
+
934
+ //#endregion
935
+ //#region src/operations/add-team-to-project.operation.ts
936
+ const addTeamToProjectOperation = defineSentryEndpoint(addTeamToProjectDefinition, sentryCredentialSet);
937
+
938
+ //#endregion
939
+ //#region src/utils/dashboards-endpoints.ts
940
+ /**
941
+ * Sentry dashboard operations. Maps to PLAN.md §6.14 (5 actions).
942
+ */
943
+ const ORG$9 = [{
944
+ name: "organization_slug",
945
+ placeholder: "{organization_slug}"
946
+ }];
947
+ const ORG_DASHBOARD = [...ORG$9, {
948
+ name: "dashboard_id",
949
+ placeholder: "{dashboard_id}"
950
+ }];
951
+ const createDashboardWithWidgetsDefinition = {
952
+ id: "sentry.create-dashboard-with-widgets",
953
+ name: "Create Dashboard",
954
+ description: "Create a new dashboard with widgets.",
955
+ method: "POST",
956
+ path: "/api/0/organizations/{organization_slug}/dashboards/",
957
+ pathParams: ORG$9,
958
+ input: orgScopeInputSchema.extend({
959
+ title: z.string().min(1),
960
+ widgets: z.array(sentryJsonObjectSchema).optional(),
961
+ projects: z.array(z.number().int()).optional(),
962
+ environment: z.array(z.string()).optional(),
963
+ period: z.string().optional(),
964
+ filters: sentryJsonObjectSchema.optional()
965
+ }),
966
+ bodyFields: [
967
+ "title",
968
+ "widgets",
969
+ "projects",
970
+ "environment",
971
+ "period",
972
+ "filters"
973
+ ],
974
+ output: sentryDashboardSchema,
975
+ needsApproval: true,
976
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgWrite]
977
+ };
978
+ const listOrganizationDashboardsDefinition = {
979
+ id: "sentry.list-organization-dashboards",
980
+ name: "List Dashboards",
981
+ description: "List organization dashboards.",
982
+ method: "GET",
983
+ path: "/api/0/organizations/{organization_slug}/dashboards/",
984
+ pathParams: ORG$9,
985
+ input: sentryListInputSchema.merge(orgScopeInputSchema),
986
+ queryFields: [
987
+ "cursor",
988
+ "per_page",
989
+ "query"
990
+ ],
991
+ output: z.array(sentryDashboardSchema),
992
+ pagination: "cursor",
993
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgRead]
994
+ };
995
+ const retrieveOrganizationDashboardDefinition = {
996
+ id: "sentry.retrieve-organization-dashboard",
997
+ name: "Retrieve Dashboard",
998
+ description: "Fetch one dashboard by id.",
999
+ method: "GET",
1000
+ path: "/api/0/organizations/{organization_slug}/dashboards/{dashboard_id}/",
1001
+ pathParams: ORG_DASHBOARD,
1002
+ input: orgScopeInputSchema.extend({ dashboard_id: sentryIdSchema }),
1003
+ output: sentryDashboardSchema,
1004
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgRead]
1005
+ };
1006
+ const updateOrganizationDashboardDefinition = {
1007
+ id: "sentry.update-organization-dashboard",
1008
+ name: "Update Dashboard",
1009
+ description: "Update a dashboard’s title or widget layout.",
1010
+ method: "PUT",
1011
+ path: "/api/0/organizations/{organization_slug}/dashboards/{dashboard_id}/",
1012
+ pathParams: ORG_DASHBOARD,
1013
+ input: orgScopeInputSchema.extend({
1014
+ dashboard_id: sentryIdSchema,
1015
+ title: z.string().optional(),
1016
+ widgets: z.array(sentryJsonObjectSchema).optional(),
1017
+ projects: z.array(z.number().int()).optional(),
1018
+ environment: z.array(z.string()).optional(),
1019
+ period: z.string().optional(),
1020
+ filters: sentryJsonObjectSchema.optional()
1021
+ }),
1022
+ bodyFields: [
1023
+ "title",
1024
+ "widgets",
1025
+ "projects",
1026
+ "environment",
1027
+ "period",
1028
+ "filters"
1029
+ ],
1030
+ output: sentryDashboardSchema,
1031
+ needsApproval: true,
1032
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgWrite]
1033
+ };
1034
+ const deleteOrganizationDashboardDefinition = {
1035
+ id: "sentry.delete-organization-dashboard",
1036
+ name: "Delete Dashboard",
1037
+ description: "Delete a dashboard by id.",
1038
+ method: "DELETE",
1039
+ path: "/api/0/organizations/{organization_slug}/dashboards/{dashboard_id}/",
1040
+ pathParams: ORG_DASHBOARD,
1041
+ input: orgScopeInputSchema.extend({ dashboard_id: sentryIdSchema }),
1042
+ output: z.unknown(),
1043
+ needsApproval: true,
1044
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgWrite]
1045
+ };
1046
+
1047
+ //#endregion
1048
+ //#region src/operations/create-dashboard-with-widgets.operation.ts
1049
+ const createDashboardWithWidgetsOperation = defineSentryEndpoint(createDashboardWithWidgetsDefinition, sentryCredentialSet);
1050
+
1051
+ //#endregion
1052
+ //#region src/utils/scim-endpoints.ts
1053
+ /**
1054
+ * Sentry SCIM + SAML + external-user operations.
1055
+ * Maps to PLAN.md §6.20 (11 actions).
1056
+ */
1057
+ const ORG$8 = [{
1058
+ name: "organization_slug",
1059
+ placeholder: "{organization_slug}"
1060
+ }];
1061
+ const ORG_SCIM_USER = [...ORG$8, {
1062
+ name: "member_id",
1063
+ placeholder: "{member_id}"
1064
+ }];
1065
+ const ORG_SCIM_GROUP = [...ORG$8, {
1066
+ name: "group_id",
1067
+ placeholder: "{group_id}"
1068
+ }];
1069
+ const ORG_EXT_USER = [...ORG$8, {
1070
+ name: "external_user_id",
1071
+ placeholder: "{external_user_id}"
1072
+ }];
1073
+ const listScimV2OrganizationUsersDefinition = {
1074
+ id: "sentry.list-scim-v2-organization-users",
1075
+ name: "List SCIM Users",
1076
+ description: "List organization SCIM v2 users.",
1077
+ method: "GET",
1078
+ path: "/api/0/organizations/{organization_slug}/scim/v2/Users",
1079
+ pathParams: ORG$8,
1080
+ input: sentryListInputSchema.merge(orgScopeInputSchema).extend({
1081
+ startIndex: z.number().int().optional(),
1082
+ count: z.number().int().optional(),
1083
+ filter: z.string().optional()
1084
+ }),
1085
+ queryFields: [
1086
+ "cursor",
1087
+ "per_page",
1088
+ "query",
1089
+ "startIndex",
1090
+ "count",
1091
+ "filter"
1092
+ ],
1093
+ output: sentryJsonObjectSchema,
1094
+ requiredOAuthScopes: [...SENTRY_SCOPE.memberRead]
1095
+ };
1096
+ const retrieveUserViaScimApiDefinition = {
1097
+ id: "sentry.retrieve-user-via-scim-api",
1098
+ name: "Retrieve SCIM User",
1099
+ description: "Fetch a SCIM user by member id.",
1100
+ method: "GET",
1101
+ path: "/api/0/organizations/{organization_slug}/scim/v2/Users/{member_id}",
1102
+ pathParams: ORG_SCIM_USER,
1103
+ input: orgScopeInputSchema.extend({ member_id: sentryIdSchema }),
1104
+ output: sentryScimUserSchema,
1105
+ requiredOAuthScopes: [...SENTRY_SCOPE.memberRead]
1106
+ };
1107
+ const createUserForSamlIntegrationDefinition = {
1108
+ id: "sentry.create-user-for-saml-integration",
1109
+ name: "Create SAML User",
1110
+ description: "Provision a new SAML/SCIM user.",
1111
+ method: "POST",
1112
+ path: "/api/0/organizations/{organization_slug}/scim/v2/Users",
1113
+ pathParams: ORG$8,
1114
+ input: orgScopeInputSchema.extend({
1115
+ userName: z.string().min(1),
1116
+ active: z.boolean().optional(),
1117
+ displayName: z.string().optional(),
1118
+ emails: z.array(z.object({
1119
+ value: z.string().email(),
1120
+ primary: z.boolean().optional()
1121
+ })).optional(),
1122
+ name: z.object({
1123
+ givenName: z.string().optional(),
1124
+ familyName: z.string().optional()
1125
+ }).optional()
1126
+ }),
1127
+ bodyFields: [
1128
+ "userName",
1129
+ "active",
1130
+ "displayName",
1131
+ "emails",
1132
+ "name"
1133
+ ],
1134
+ output: sentryScimUserSchema,
1135
+ needsApproval: true,
1136
+ requiredOAuthScopes: [...SENTRY_SCOPE.memberAdmin]
1137
+ };
1138
+ const createScimGroupForOrganizationDefinition = {
1139
+ id: "sentry.create-scim-group-for-organization",
1140
+ name: "Create SCIM Group",
1141
+ description: "Create a new SCIM group.",
1142
+ method: "POST",
1143
+ path: "/api/0/organizations/{organization_slug}/scim/v2/Groups",
1144
+ pathParams: ORG$8,
1145
+ input: orgScopeInputSchema.extend({
1146
+ displayName: z.string().min(1),
1147
+ members: z.array(z.object({
1148
+ value: sentryIdSchema,
1149
+ display: z.string().optional()
1150
+ })).optional()
1151
+ }),
1152
+ bodyFields: ["displayName", "members"],
1153
+ output: sentryScimGroupSchema,
1154
+ needsApproval: true,
1155
+ requiredOAuthScopes: [...SENTRY_SCOPE.teamAdmin]
1156
+ };
1157
+ const getScimGroupByTeamIdDefinition = {
1158
+ id: "sentry.get-scim-group-by-team-id",
1159
+ name: "Get SCIM Group",
1160
+ description: "Fetch a SCIM group by id.",
1161
+ method: "GET",
1162
+ path: "/api/0/organizations/{organization_slug}/scim/v2/Groups/{group_id}",
1163
+ pathParams: ORG_SCIM_GROUP,
1164
+ input: orgScopeInputSchema.extend({ group_id: sentryIdSchema }),
1165
+ output: sentryScimGroupSchema,
1166
+ requiredOAuthScopes: [...SENTRY_SCOPE.teamRead]
1167
+ };
1168
+ const retrieveOrganizationScimGroupsDefinition = {
1169
+ id: "sentry.retrieve-organization-scim-groups",
1170
+ name: "List SCIM Groups",
1171
+ description: "List SCIM groups for the organization.",
1172
+ method: "GET",
1173
+ path: "/api/0/organizations/{organization_slug}/scim/v2/Groups",
1174
+ pathParams: ORG$8,
1175
+ input: sentryListInputSchema.merge(orgScopeInputSchema).extend({
1176
+ startIndex: z.number().int().optional(),
1177
+ count: z.number().int().optional(),
1178
+ filter: z.string().optional()
1179
+ }),
1180
+ queryFields: [
1181
+ "cursor",
1182
+ "per_page",
1183
+ "query",
1184
+ "startIndex",
1185
+ "count",
1186
+ "filter"
1187
+ ],
1188
+ output: sentryJsonObjectSchema,
1189
+ requiredOAuthScopes: [...SENTRY_SCOPE.teamRead]
1190
+ };
1191
+ const patchScimGroupOperationsDefinition = {
1192
+ id: "sentry.patch-scim-group-operations",
1193
+ name: "Patch SCIM Group",
1194
+ description: "Apply PATCH operations to a SCIM group.",
1195
+ method: "PATCH",
1196
+ path: "/api/0/organizations/{organization_slug}/scim/v2/Groups/{group_id}",
1197
+ pathParams: ORG_SCIM_GROUP,
1198
+ input: orgScopeInputSchema.extend({
1199
+ group_id: sentryIdSchema,
1200
+ Operations: z.array(sentryJsonObjectSchema).min(1)
1201
+ }),
1202
+ bodyFields: ["Operations"],
1203
+ output: sentryScimGroupSchema,
1204
+ needsApproval: true,
1205
+ requiredOAuthScopes: [...SENTRY_SCOPE.teamAdmin]
1206
+ };
1207
+ const deleteTeamFromOrgScimV2Definition = {
1208
+ id: "sentry.delete-team-from-org-scim-v2",
1209
+ name: "Delete SCIM Group",
1210
+ description: "Delete a SCIM group by id.",
1211
+ method: "DELETE",
1212
+ path: "/api/0/organizations/{organization_slug}/scim/v2/Groups/{group_id}",
1213
+ pathParams: ORG_SCIM_GROUP,
1214
+ input: orgScopeInputSchema.extend({ group_id: sentryIdSchema }),
1215
+ output: z.unknown(),
1216
+ needsApproval: true,
1217
+ requiredOAuthScopes: [...SENTRY_SCOPE.teamAdmin]
1218
+ };
1219
+ const createExternalUserForOrganizationDefinition = {
1220
+ id: "sentry.create-external-user-for-organization",
1221
+ name: "Create External User",
1222
+ description: "Link a Sentry user to an external-provider user (github, slack, etc.).",
1223
+ method: "POST",
1224
+ path: "/api/0/organizations/{organization_slug}/external-users/",
1225
+ pathParams: ORG$8,
1226
+ input: orgScopeInputSchema.extend({
1227
+ userId: sentryIdSchema,
1228
+ externalName: z.string().min(1),
1229
+ provider: z.string().min(1),
1230
+ externalId: z.string().optional(),
1231
+ integrationId: z.string().optional()
1232
+ }),
1233
+ bodyFields: [
1234
+ "userId",
1235
+ "externalName",
1236
+ "provider",
1237
+ "externalId",
1238
+ "integrationId"
1239
+ ],
1240
+ output: sentryJsonObjectSchema,
1241
+ needsApproval: true,
1242
+ requiredOAuthScopes: [...SENTRY_SCOPE.memberAdmin]
1243
+ };
1244
+ const updateExternalUserForOrganizationDefinition = {
1245
+ id: "sentry.update-external-user-for-organization",
1246
+ name: "Update External User",
1247
+ description: "Update an external-user link.",
1248
+ method: "PUT",
1249
+ path: "/api/0/organizations/{organization_slug}/external-users/{external_user_id}/",
1250
+ pathParams: ORG_EXT_USER,
1251
+ input: orgScopeInputSchema.extend({
1252
+ external_user_id: sentryIdSchema,
1253
+ externalName: z.string().optional(),
1254
+ provider: z.string().optional(),
1255
+ externalId: z.string().optional(),
1256
+ integrationId: z.string().optional()
1257
+ }),
1258
+ bodyFields: [
1259
+ "externalName",
1260
+ "provider",
1261
+ "externalId",
1262
+ "integrationId"
1263
+ ],
1264
+ output: sentryJsonObjectSchema,
1265
+ needsApproval: true,
1266
+ requiredOAuthScopes: [...SENTRY_SCOPE.memberAdmin]
1267
+ };
1268
+ const deleteExternalUserFromOrganizationDefinition = {
1269
+ id: "sentry.delete-external-user-from-organization",
1270
+ name: "Delete External User",
1271
+ description: "Remove an external-user link by id.",
1272
+ method: "DELETE",
1273
+ path: "/api/0/organizations/{organization_slug}/external-users/{external_user_id}/",
1274
+ pathParams: ORG_EXT_USER,
1275
+ input: orgScopeInputSchema.extend({ external_user_id: sentryIdSchema }),
1276
+ output: z.unknown(),
1277
+ needsApproval: true,
1278
+ requiredOAuthScopes: [...SENTRY_SCOPE.memberAdmin]
1279
+ };
1280
+
1281
+ //#endregion
1282
+ //#region src/operations/create-external-user-for-organization.operation.ts
1283
+ const createExternalUserForOrganizationOperation = defineSentryEndpoint(createExternalUserForOrganizationDefinition, sentryCredentialSet);
1284
+
1285
+ //#endregion
1286
+ //#region src/utils/alerts-endpoints.ts
1287
+ /**
1288
+ * Sentry alert-rule operations (metric + issue alert rules).
1289
+ * Maps to PLAN.md §6.11 (11 actions).
1290
+ */
1291
+ const ORG$7 = [{
1292
+ name: "organization_slug",
1293
+ placeholder: "{organization_slug}"
1294
+ }];
1295
+ const ORG_RULE = [...ORG$7, {
1296
+ name: "alert_rule_id",
1297
+ placeholder: "{alert_rule_id}"
1298
+ }];
1299
+ const ORG_PROJECT$7 = [...ORG$7, {
1300
+ name: "project_slug",
1301
+ placeholder: "{project_slug}"
1302
+ }];
1303
+ const ORG_PROJECT_RULE = [...ORG_PROJECT$7, {
1304
+ name: "rule_id",
1305
+ placeholder: "{rule_id}"
1306
+ }];
1307
+ const createOrganizationAlertRuleDefinition = {
1308
+ id: "sentry.create-organization-alert-rule",
1309
+ name: "Create Metric Alert Rule",
1310
+ description: "Create a new organization metric alert rule.",
1311
+ method: "POST",
1312
+ path: "/api/0/organizations/{organization_slug}/alert-rules/",
1313
+ pathParams: ORG$7,
1314
+ input: orgScopeInputSchema.extend({
1315
+ name: z.string().min(1),
1316
+ dataset: z.string().optional(),
1317
+ query: z.string().optional(),
1318
+ aggregate: z.string().min(1),
1319
+ timeWindow: z.number().int(),
1320
+ projects: z.array(z.string()).min(1),
1321
+ environment: z.string().optional(),
1322
+ comparisonDelta: z.number().int().optional(),
1323
+ resolveThreshold: z.number().optional(),
1324
+ thresholdType: z.number().int().optional(),
1325
+ triggers: z.array(sentryJsonObjectSchema).min(1),
1326
+ owner: z.string().nullable().optional()
1327
+ }),
1328
+ bodyFields: [
1329
+ "name",
1330
+ "dataset",
1331
+ "query",
1332
+ "aggregate",
1333
+ "timeWindow",
1334
+ "projects",
1335
+ "environment",
1336
+ "comparisonDelta",
1337
+ "resolveThreshold",
1338
+ "thresholdType",
1339
+ "triggers",
1340
+ "owner"
1341
+ ],
1342
+ output: sentryMetricAlertRuleSchema,
1343
+ needsApproval: true,
1344
+ requiredOAuthScopes: [...SENTRY_SCOPE.alertsWrite]
1345
+ };
1346
+ const fetchOrganizationAlertRulesDefinition = {
1347
+ id: "sentry.fetch-organization-alert-rules",
1348
+ name: "List Metric Alert Rules",
1349
+ description: "List organization metric alert rules.",
1350
+ method: "GET",
1351
+ path: "/api/0/organizations/{organization_slug}/alert-rules/",
1352
+ pathParams: ORG$7,
1353
+ input: sentryListInputSchema.merge(orgScopeInputSchema),
1354
+ queryFields: [
1355
+ "cursor",
1356
+ "per_page",
1357
+ "query"
1358
+ ],
1359
+ output: z.array(sentryMetricAlertRuleSchema),
1360
+ pagination: "cursor",
1361
+ requiredOAuthScopes: [...SENTRY_SCOPE.alertsRead]
1362
+ };
1363
+ const retrieveAlertRuleDetailsDefinition = {
1364
+ id: "sentry.retrieve-alert-rule-details",
1365
+ name: "Retrieve Metric Alert Rule",
1366
+ description: "Fetch a metric alert rule by id.",
1367
+ method: "GET",
1368
+ path: "/api/0/organizations/{organization_slug}/alert-rules/{alert_rule_id}/",
1369
+ pathParams: ORG_RULE,
1370
+ input: orgScopeInputSchema.extend({ alert_rule_id: sentryIdSchema }),
1371
+ output: sentryMetricAlertRuleSchema,
1372
+ requiredOAuthScopes: [...SENTRY_SCOPE.alertsRead]
1373
+ };
1374
+ const updateOrganizationAlertRulesDefinition = {
1375
+ id: "sentry.update-organization-alert-rules",
1376
+ name: "Update Metric Alert Rule",
1377
+ description: "Update a metric alert rule in place.",
1378
+ method: "PUT",
1379
+ path: "/api/0/organizations/{organization_slug}/alert-rules/{alert_rule_id}/",
1380
+ pathParams: ORG_RULE,
1381
+ input: orgScopeInputSchema.extend({
1382
+ alert_rule_id: sentryIdSchema,
1383
+ name: z.string().optional(),
1384
+ dataset: z.string().optional(),
1385
+ query: z.string().optional(),
1386
+ aggregate: z.string().optional(),
1387
+ timeWindow: z.number().int().optional(),
1388
+ projects: z.array(z.string()).optional(),
1389
+ environment: z.string().optional(),
1390
+ comparisonDelta: z.number().int().optional(),
1391
+ resolveThreshold: z.number().optional(),
1392
+ thresholdType: z.number().int().optional(),
1393
+ triggers: z.array(sentryJsonObjectSchema).optional(),
1394
+ owner: z.string().nullable().optional()
1395
+ }),
1396
+ bodyFields: [
1397
+ "name",
1398
+ "dataset",
1399
+ "query",
1400
+ "aggregate",
1401
+ "timeWindow",
1402
+ "projects",
1403
+ "environment",
1404
+ "comparisonDelta",
1405
+ "resolveThreshold",
1406
+ "thresholdType",
1407
+ "triggers",
1408
+ "owner"
1409
+ ],
1410
+ output: sentryMetricAlertRuleSchema,
1411
+ needsApproval: true,
1412
+ requiredOAuthScopes: [...SENTRY_SCOPE.alertsWrite]
1413
+ };
1414
+ const deleteOrganizationAlertRuleDefinition = {
1415
+ id: "sentry.delete-organization-alert-rule",
1416
+ name: "Delete Metric Alert Rule",
1417
+ description: "Delete a metric alert rule by id.",
1418
+ method: "DELETE",
1419
+ path: "/api/0/organizations/{organization_slug}/alert-rules/{alert_rule_id}/",
1420
+ pathParams: ORG_RULE,
1421
+ input: orgScopeInputSchema.extend({ alert_rule_id: sentryIdSchema }),
1422
+ output: z.unknown(),
1423
+ needsApproval: true,
1424
+ requiredOAuthScopes: [...SENTRY_SCOPE.alertsWrite]
1425
+ };
1426
+ const getActivationOfAlertRuleForOrganizationDefinition = {
1427
+ id: "sentry.get-activation-of-alert-rule-for-organization",
1428
+ name: "Get Alert Rule Activation",
1429
+ description: "Fetch the activation history for a metric alert rule.",
1430
+ method: "GET",
1431
+ path: "/api/0/organizations/{organization_slug}/alert-rules/{alert_rule_id}/activations/",
1432
+ pathParams: ORG_RULE,
1433
+ input: orgScopeInputSchema.extend({
1434
+ alert_rule_id: sentryIdSchema,
1435
+ cursor: z.string().optional(),
1436
+ per_page: z.number().int().optional()
1437
+ }),
1438
+ queryFields: ["cursor", "per_page"],
1439
+ output: z.array(sentryJsonObjectSchema),
1440
+ requiredOAuthScopes: [...SENTRY_SCOPE.alertsRead]
1441
+ };
1442
+ const createProjectRuleForAlertsDefinition = {
1443
+ id: "sentry.create-project-rule-for-alerts",
1444
+ name: "Create Issue Alert Rule",
1445
+ description: "Create a project issue alert rule.",
1446
+ method: "POST",
1447
+ path: "/api/0/projects/{organization_slug}/{project_slug}/rules/",
1448
+ pathParams: ORG_PROJECT$7,
1449
+ input: orgProjectScopeInputSchema.extend({
1450
+ name: z.string().min(1),
1451
+ actionMatch: z.enum([
1452
+ "all",
1453
+ "any",
1454
+ "none"
1455
+ ]),
1456
+ filterMatch: z.enum([
1457
+ "all",
1458
+ "any",
1459
+ "none"
1460
+ ]).optional(),
1461
+ frequency: z.number().int(),
1462
+ conditions: z.array(sentryJsonObjectSchema),
1463
+ filters: z.array(sentryJsonObjectSchema).optional(),
1464
+ actions: z.array(sentryJsonObjectSchema),
1465
+ environment: z.string().nullable().optional(),
1466
+ owner: z.string().nullable().optional()
1467
+ }),
1468
+ bodyFields: [
1469
+ "name",
1470
+ "actionMatch",
1471
+ "filterMatch",
1472
+ "frequency",
1473
+ "conditions",
1474
+ "filters",
1475
+ "actions",
1476
+ "environment",
1477
+ "owner"
1478
+ ],
1479
+ output: sentryIssueAlertRuleSchema,
1480
+ needsApproval: true,
1481
+ requiredOAuthScopes: [...SENTRY_SCOPE.alertsWrite]
1482
+ };
1483
+ const retrieveProjectRulesByOrgAndProjectIdDefinition = {
1484
+ id: "sentry.retrieve-project-rules-by-org-and-project-id",
1485
+ name: "List Issue Alert Rules",
1486
+ description: "List project issue alert rules.",
1487
+ method: "GET",
1488
+ path: "/api/0/projects/{organization_slug}/{project_slug}/rules/",
1489
+ pathParams: ORG_PROJECT$7,
1490
+ input: sentryListInputSchema.merge(orgProjectScopeInputSchema),
1491
+ queryFields: [
1492
+ "cursor",
1493
+ "per_page",
1494
+ "query"
1495
+ ],
1496
+ output: z.array(sentryIssueAlertRuleSchema),
1497
+ pagination: "cursor",
1498
+ requiredOAuthScopes: [...SENTRY_SCOPE.alertsRead]
1499
+ };
1500
+ const getProjectRuleDetailsDefinition = {
1501
+ id: "sentry.get-project-rule-details",
1502
+ name: "Get Issue Alert Rule",
1503
+ description: "Fetch a single issue alert rule by id.",
1504
+ method: "GET",
1505
+ path: "/api/0/projects/{organization_slug}/{project_slug}/rules/{rule_id}/",
1506
+ pathParams: ORG_PROJECT_RULE,
1507
+ input: orgProjectScopeInputSchema.extend({ rule_id: sentryIdSchema }),
1508
+ output: sentryIssueAlertRuleSchema,
1509
+ requiredOAuthScopes: [...SENTRY_SCOPE.alertsRead]
1510
+ };
1511
+ const updateProjectRuleByIdDefinition = {
1512
+ id: "sentry.update-project-rule-by-id",
1513
+ name: "Update Issue Alert Rule",
1514
+ description: "Update a project issue alert rule.",
1515
+ method: "PUT",
1516
+ path: "/api/0/projects/{organization_slug}/{project_slug}/rules/{rule_id}/",
1517
+ pathParams: ORG_PROJECT_RULE,
1518
+ input: orgProjectScopeInputSchema.extend({
1519
+ rule_id: sentryIdSchema,
1520
+ name: z.string().optional(),
1521
+ actionMatch: z.enum([
1522
+ "all",
1523
+ "any",
1524
+ "none"
1525
+ ]).optional(),
1526
+ filterMatch: z.enum([
1527
+ "all",
1528
+ "any",
1529
+ "none"
1530
+ ]).optional(),
1531
+ frequency: z.number().int().optional(),
1532
+ conditions: z.array(sentryJsonObjectSchema).optional(),
1533
+ filters: z.array(sentryJsonObjectSchema).optional(),
1534
+ actions: z.array(sentryJsonObjectSchema).optional(),
1535
+ environment: z.string().nullable().optional(),
1536
+ owner: z.string().nullable().optional()
1537
+ }),
1538
+ bodyFields: [
1539
+ "name",
1540
+ "actionMatch",
1541
+ "filterMatch",
1542
+ "frequency",
1543
+ "conditions",
1544
+ "filters",
1545
+ "actions",
1546
+ "environment",
1547
+ "owner"
1548
+ ],
1549
+ output: sentryIssueAlertRuleSchema,
1550
+ needsApproval: true,
1551
+ requiredOAuthScopes: [...SENTRY_SCOPE.alertsWrite]
1552
+ };
1553
+ const deleteProjectRuleDefinition = {
1554
+ id: "sentry.delete-project-rule",
1555
+ name: "Delete Issue Alert Rule",
1556
+ description: "Delete a project issue alert rule.",
1557
+ method: "DELETE",
1558
+ path: "/api/0/projects/{organization_slug}/{project_slug}/rules/{rule_id}/",
1559
+ pathParams: ORG_PROJECT_RULE,
1560
+ input: orgProjectScopeInputSchema.extend({ rule_id: sentryIdSchema }),
1561
+ output: z.unknown(),
1562
+ needsApproval: true,
1563
+ requiredOAuthScopes: [...SENTRY_SCOPE.alertsWrite]
1564
+ };
1565
+
1566
+ //#endregion
1567
+ //#region src/operations/create-organization-alert-rule.operation.ts
1568
+ const createOrganizationAlertRuleOperation = defineSentryEndpoint(createOrganizationAlertRuleDefinition, sentryCredentialSet);
1569
+
1570
+ //#endregion
1571
+ //#region src/utils/monitors-endpoints.ts
1572
+ /**
1573
+ * Sentry cron-monitor operations. Maps to PLAN.md §6.13 (10 actions).
1574
+ */
1575
+ const ORG$6 = [{
1576
+ name: "organization_slug",
1577
+ placeholder: "{organization_slug}"
1578
+ }];
1579
+ const ORG_MONITOR = [...ORG$6, {
1580
+ name: "monitor_id_or_slug",
1581
+ placeholder: "{monitor_id_or_slug}"
1582
+ }];
1583
+ const ORG_PROJECT_MONITOR = [
1584
+ ...ORG$6,
1585
+ {
1586
+ name: "project_slug",
1587
+ placeholder: "{project_slug}"
1588
+ },
1589
+ {
1590
+ name: "monitor_id_or_slug",
1591
+ placeholder: "{monitor_id_or_slug}"
1592
+ }
1593
+ ];
1594
+ const createOrganizationMonitorDefinition = {
1595
+ id: "sentry.create-organization-monitor",
1596
+ name: "Create Monitor",
1597
+ description: "Create a new cron-monitor scoped to the organization.",
1598
+ method: "POST",
1599
+ path: "/api/0/organizations/{organization_slug}/monitors/",
1600
+ pathParams: ORG$6,
1601
+ input: orgScopeInputSchema.extend({
1602
+ name: z.string().min(1),
1603
+ slug: sentrySlugSchema.optional(),
1604
+ project: z.string().min(1),
1605
+ type: z.enum(["cron_job"]).default("cron_job"),
1606
+ config: sentryJsonObjectSchema,
1607
+ status: z.enum(["active", "disabled"]).optional(),
1608
+ alert_rule: sentryJsonObjectSchema.optional()
1609
+ }),
1610
+ bodyFields: [
1611
+ "name",
1612
+ "slug",
1613
+ "project",
1614
+ "type",
1615
+ "config",
1616
+ "status",
1617
+ "alert_rule"
1618
+ ],
1619
+ output: sentryMonitorSchema,
1620
+ needsApproval: true,
1621
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectWrite]
1622
+ };
1623
+ const retrieveOrganizationMonitorsDefinition = {
1624
+ id: "sentry.retrieve-organization-monitors",
1625
+ name: "List Monitors",
1626
+ description: "List cron-monitors in an organization.",
1627
+ method: "GET",
1628
+ path: "/api/0/organizations/{organization_slug}/monitors/",
1629
+ pathParams: ORG$6,
1630
+ input: sentryListInputSchema.merge(orgScopeInputSchema).extend({
1631
+ project: z.array(z.number().int()).optional(),
1632
+ environment: z.array(z.string()).optional()
1633
+ }),
1634
+ queryFields: [
1635
+ "cursor",
1636
+ "per_page",
1637
+ "query",
1638
+ "project",
1639
+ "environment"
1640
+ ],
1641
+ output: z.array(sentryMonitorSchema),
1642
+ pagination: "cursor",
1643
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
1644
+ };
1645
+ const getOrganizationMonitorByIdOrSlugDefinition = {
1646
+ id: "sentry.get-organization-monitor-by-id-or-slug",
1647
+ name: "Get Monitor",
1648
+ description: "Fetch a single monitor by id or slug.",
1649
+ method: "GET",
1650
+ path: "/api/0/organizations/{organization_slug}/monitors/{monitor_id_or_slug}/",
1651
+ pathParams: ORG_MONITOR,
1652
+ input: orgScopeInputSchema.extend({ monitor_id_or_slug: z.string().min(1) }),
1653
+ output: sentryMonitorSchema,
1654
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
1655
+ };
1656
+ const modifyOrganizationMonitorDataDefinition = {
1657
+ id: "sentry.modify-organization-monitor-data",
1658
+ name: "Update Monitor",
1659
+ description: "Update an existing monitor by id or slug.",
1660
+ method: "PUT",
1661
+ path: "/api/0/organizations/{organization_slug}/monitors/{monitor_id_or_slug}/",
1662
+ pathParams: ORG_MONITOR,
1663
+ input: orgScopeInputSchema.extend({
1664
+ monitor_id_or_slug: z.string().min(1),
1665
+ name: z.string().optional(),
1666
+ slug: sentrySlugSchema.optional(),
1667
+ project: z.string().optional(),
1668
+ config: sentryJsonObjectSchema.optional(),
1669
+ status: z.enum(["active", "disabled"]).optional(),
1670
+ alert_rule: sentryJsonObjectSchema.optional()
1671
+ }),
1672
+ bodyFields: [
1673
+ "name",
1674
+ "slug",
1675
+ "project",
1676
+ "config",
1677
+ "status",
1678
+ "alert_rule"
1679
+ ],
1680
+ output: sentryMonitorSchema,
1681
+ needsApproval: true,
1682
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectWrite]
1683
+ };
1684
+ const deleteOrganizationMonitorDefinition = {
1685
+ id: "sentry.delete-organization-monitor",
1686
+ name: "Delete Monitor",
1687
+ description: "Delete a monitor by id or slug.",
1688
+ method: "DELETE",
1689
+ path: "/api/0/organizations/{organization_slug}/monitors/{monitor_id_or_slug}/",
1690
+ pathParams: ORG_MONITOR,
1691
+ input: orgScopeInputSchema.extend({ monitor_id_or_slug: z.string().min(1) }),
1692
+ output: z.unknown(),
1693
+ needsApproval: true,
1694
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectWrite]
1695
+ };
1696
+ const getProjectMonitorByIdDefinition = {
1697
+ id: "sentry.get-project-monitor-by-id",
1698
+ name: "Get Project Monitor",
1699
+ description: "Fetch a monitor scoped to a project.",
1700
+ method: "GET",
1701
+ path: "/api/0/projects/{organization_slug}/{project_slug}/monitors/{monitor_id_or_slug}/",
1702
+ pathParams: ORG_PROJECT_MONITOR,
1703
+ input: orgProjectScopeInputSchema.extend({ monitor_id_or_slug: z.string().min(1) }),
1704
+ output: sentryMonitorSchema,
1705
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
1706
+ };
1707
+ const updateProjectMonitorDefinition = {
1708
+ id: "sentry.update-project-monitor",
1709
+ name: "Update Project Monitor",
1710
+ description: "Update a project-scoped monitor.",
1711
+ method: "PUT",
1712
+ path: "/api/0/projects/{organization_slug}/{project_slug}/monitors/{monitor_id_or_slug}/",
1713
+ pathParams: ORG_PROJECT_MONITOR,
1714
+ input: orgProjectScopeInputSchema.extend({
1715
+ monitor_id_or_slug: z.string().min(1),
1716
+ name: z.string().optional(),
1717
+ slug: sentrySlugSchema.optional(),
1718
+ config: sentryJsonObjectSchema.optional(),
1719
+ status: z.enum(["active", "disabled"]).optional()
1720
+ }),
1721
+ bodyFields: [
1722
+ "name",
1723
+ "slug",
1724
+ "config",
1725
+ "status"
1726
+ ],
1727
+ output: sentryMonitorSchema,
1728
+ needsApproval: true,
1729
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectWrite]
1730
+ };
1731
+ const deleteProjectMonitorDefinition = {
1732
+ id: "sentry.delete-project-monitor",
1733
+ name: "Delete Project Monitor",
1734
+ description: "Delete a project-scoped monitor.",
1735
+ method: "DELETE",
1736
+ path: "/api/0/projects/{organization_slug}/{project_slug}/monitors/{monitor_id_or_slug}/",
1737
+ pathParams: ORG_PROJECT_MONITOR,
1738
+ input: orgProjectScopeInputSchema.extend({ monitor_id_or_slug: z.string().min(1) }),
1739
+ output: z.unknown(),
1740
+ needsApproval: true,
1741
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectWrite]
1742
+ };
1743
+ const retrieveMonitorCheckinsDefinition = {
1744
+ id: "sentry.retrieve-monitor-checkins",
1745
+ name: "Retrieve Monitor Check-Ins",
1746
+ description: "List check-ins for a project monitor.",
1747
+ method: "GET",
1748
+ path: "/api/0/projects/{organization_slug}/{project_slug}/monitors/{monitor_id_or_slug}/checkins/",
1749
+ pathParams: ORG_PROJECT_MONITOR,
1750
+ input: sentryListInputSchema.merge(orgProjectScopeInputSchema).extend({
1751
+ monitor_id_or_slug: z.string().min(1),
1752
+ environment: z.string().optional()
1753
+ }),
1754
+ queryFields: [
1755
+ "cursor",
1756
+ "per_page",
1757
+ "query",
1758
+ "environment"
1759
+ ],
1760
+ output: sentryJsonArraySchema,
1761
+ pagination: "cursor",
1762
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
1763
+ };
1764
+ const retrieveMonitorCheckinsByOrgDefinition = {
1765
+ id: "sentry.retrieve-monitor-checkins-by-org",
1766
+ name: "Retrieve Monitor Check-Ins (Org)",
1767
+ description: "List check-ins for an organization-level monitor.",
1768
+ method: "GET",
1769
+ path: "/api/0/organizations/{organization_slug}/monitors/{monitor_id_or_slug}/checkins/",
1770
+ pathParams: ORG_MONITOR,
1771
+ input: sentryListInputSchema.merge(orgScopeInputSchema).extend({
1772
+ monitor_id_or_slug: z.string().min(1),
1773
+ environment: z.string().optional()
1774
+ }),
1775
+ queryFields: [
1776
+ "cursor",
1777
+ "per_page",
1778
+ "query",
1779
+ "environment"
1780
+ ],
1781
+ output: sentryJsonArraySchema,
1782
+ pagination: "cursor",
1783
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
1784
+ };
1785
+
1786
+ //#endregion
1787
+ //#region src/operations/create-organization-monitor.operation.ts
1788
+ const createOrganizationMonitorOperation = defineSentryEndpoint(createOrganizationMonitorDefinition, sentryCredentialSet);
1789
+
1790
+ //#endregion
1791
+ //#region src/operations/create-organization-team.operation.ts
1792
+ const createOrganizationTeamOperation = defineSentryEndpoint(createOrganizationTeamDefinition, sentryCredentialSet);
1793
+
1794
+ //#endregion
1795
+ //#region src/utils/project-keys-endpoints.ts
1796
+ /**
1797
+ * Sentry project-key (DSN) operations. Maps to PLAN.md §6.5 (5 actions).
1798
+ */
1799
+ const ORG_PROJECT$6 = [{
1800
+ name: "organization_slug",
1801
+ placeholder: "{organization_slug}"
1802
+ }, {
1803
+ name: "project_slug",
1804
+ placeholder: "{project_slug}"
1805
+ }];
1806
+ const ORG_PROJECT_KEY = [...ORG_PROJECT$6, {
1807
+ name: "key_id",
1808
+ placeholder: "{key_id}"
1809
+ }];
1810
+ const createProjectKeyWithOptionalRateLimitingDefinition = {
1811
+ id: "sentry.create-project-key-with-optional-rate-limiting",
1812
+ name: "Create Project Key",
1813
+ description: "Create a new project client key (DSN) with an optional rate-limit envelope.",
1814
+ method: "POST",
1815
+ path: "/api/0/projects/{organization_slug}/{project_slug}/keys/",
1816
+ pathParams: ORG_PROJECT$6,
1817
+ input: orgProjectScopeInputSchema.extend({
1818
+ name: z.string().optional(),
1819
+ rateLimit: z.object({
1820
+ window: z.number().int(),
1821
+ count: z.number().int()
1822
+ }).optional()
1823
+ }),
1824
+ bodyFields: ["name", "rateLimit"],
1825
+ output: sentryProjectKeySchema,
1826
+ needsApproval: true,
1827
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectAdmin]
1828
+ };
1829
+ const retrieveProjectKeyDetailsDefinition = {
1830
+ id: "sentry.retrieve-project-key-details",
1831
+ name: "Retrieve Project Key",
1832
+ description: "Fetch one project client key by id.",
1833
+ method: "GET",
1834
+ path: "/api/0/projects/{organization_slug}/{project_slug}/keys/{key_id}/",
1835
+ pathParams: ORG_PROJECT_KEY,
1836
+ input: orgProjectScopeInputSchema.extend({ key_id: sentryIdSchema }),
1837
+ output: sentryProjectKeySchema,
1838
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectAdmin]
1839
+ };
1840
+ const retrieveProjectKeysByOrgAndProjectDefinition = {
1841
+ id: "sentry.retrieve-project-keys-by-org-and-project",
1842
+ name: "List Project Keys",
1843
+ description: "List every project client key (DSN) for a project.",
1844
+ method: "GET",
1845
+ path: "/api/0/projects/{organization_slug}/{project_slug}/keys/",
1846
+ pathParams: ORG_PROJECT$6,
1847
+ input: sentryListInputSchema.merge(orgProjectScopeInputSchema),
1848
+ queryFields: [
1849
+ "cursor",
1850
+ "per_page",
1851
+ "query"
1852
+ ],
1853
+ output: z.array(sentryProjectKeySchema),
1854
+ pagination: "cursor",
1855
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectAdmin]
1856
+ };
1857
+ const updateProjectKeyConfigurationDefinition = {
1858
+ id: "sentry.update-project-key-configuration",
1859
+ name: "Update Project Key",
1860
+ description: "Update a project client key’s name, active flag, or rate-limit.",
1861
+ method: "PUT",
1862
+ path: "/api/0/projects/{organization_slug}/{project_slug}/keys/{key_id}/",
1863
+ pathParams: ORG_PROJECT_KEY,
1864
+ input: orgProjectScopeInputSchema.extend({
1865
+ key_id: sentryIdSchema,
1866
+ name: z.string().optional(),
1867
+ isActive: z.boolean().optional(),
1868
+ rateLimit: z.object({
1869
+ window: z.number().int().nullable(),
1870
+ count: z.number().int().nullable()
1871
+ }).nullable().optional(),
1872
+ browserSdkVersion: z.string().optional(),
1873
+ dynamicSdkLoaderOptions: z.object({
1874
+ hasReplay: z.boolean().optional(),
1875
+ hasPerformance: z.boolean().optional(),
1876
+ hasDebug: z.boolean().optional()
1877
+ }).optional()
1878
+ }),
1879
+ bodyFields: [
1880
+ "name",
1881
+ "isActive",
1882
+ "rateLimit",
1883
+ "browserSdkVersion",
1884
+ "dynamicSdkLoaderOptions"
1885
+ ],
1886
+ output: sentryProjectKeySchema,
1887
+ needsApproval: true,
1888
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectAdmin]
1889
+ };
1890
+ const deleteProjectKeyDefinition = {
1891
+ id: "sentry.delete-project-key",
1892
+ name: "Delete Project Key",
1893
+ description: "Delete a project client key by id.",
1894
+ method: "DELETE",
1895
+ path: "/api/0/projects/{organization_slug}/{project_slug}/keys/{key_id}/",
1896
+ pathParams: ORG_PROJECT_KEY,
1897
+ input: orgProjectScopeInputSchema.extend({ key_id: sentryIdSchema }),
1898
+ output: z.unknown(),
1899
+ needsApproval: true,
1900
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectAdmin]
1901
+ };
1902
+
1903
+ //#endregion
1904
+ //#region src/operations/create-project-key-with-optional-rate-limiting.operation.ts
1905
+ const createProjectKeyWithOptionalRateLimitingOperation = defineSentryEndpoint(createProjectKeyWithOptionalRateLimitingDefinition, sentryCredentialSet);
1906
+
1907
+ //#endregion
1908
+ //#region src/operations/create-project-rule-for-alerts.operation.ts
1909
+ const createProjectRuleForAlertsOperation = defineSentryEndpoint(createProjectRuleForAlertsDefinition, sentryCredentialSet);
1910
+
1911
+ //#endregion
1912
+ //#region src/utils/webhooks-endpoints.ts
1913
+ /**
1914
+ * Sentry legacy project service-hook operations. Maps to PLAN.md §6.16 (5 actions).
1915
+ */
1916
+ const ORG_PROJECT$5 = [{
1917
+ name: "organization_slug",
1918
+ placeholder: "{organization_slug}"
1919
+ }, {
1920
+ name: "project_slug",
1921
+ placeholder: "{project_slug}"
1922
+ }];
1923
+ const ORG_PROJECT_HOOK = [...ORG_PROJECT$5, {
1924
+ name: "hook_id",
1925
+ placeholder: "{hook_id}"
1926
+ }];
1927
+ const createProjectWebhookSubscriptionDefinition = {
1928
+ id: "sentry.create-project-webhook-subscription",
1929
+ name: "Create Project Service Hook",
1930
+ description: "Create a legacy per-project service hook. Prefer an integration webhook for new installs.",
1931
+ method: "POST",
1932
+ path: "/api/0/projects/{organization_slug}/{project_slug}/hooks/",
1933
+ pathParams: ORG_PROJECT$5,
1934
+ input: orgProjectScopeInputSchema.extend({
1935
+ url: z.string().url(),
1936
+ events: z.array(z.string()).min(1)
1937
+ }),
1938
+ bodyFields: ["url", "events"],
1939
+ output: sentryProjectHookSchema,
1940
+ needsApproval: true,
1941
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectAdmin]
1942
+ };
1943
+ const retrieveProjectHooksDefinition = {
1944
+ id: "sentry.retrieve-project-hooks",
1945
+ name: "List Project Service Hooks",
1946
+ description: "List the service hooks configured on a project.",
1947
+ method: "GET",
1948
+ path: "/api/0/projects/{organization_slug}/{project_slug}/hooks/",
1949
+ pathParams: ORG_PROJECT$5,
1950
+ input: sentryListInputSchema.merge(orgProjectScopeInputSchema),
1951
+ queryFields: [
1952
+ "cursor",
1953
+ "per_page",
1954
+ "query"
1955
+ ],
1956
+ output: z.array(sentryProjectHookSchema),
1957
+ pagination: "cursor",
1958
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
1959
+ };
1960
+ const getProjectHookDefinition = {
1961
+ id: "sentry.get-project-hook",
1962
+ name: "Get Project Service Hook",
1963
+ description: "Fetch a project service hook by id.",
1964
+ method: "GET",
1965
+ path: "/api/0/projects/{organization_slug}/{project_slug}/hooks/{hook_id}/",
1966
+ pathParams: ORG_PROJECT_HOOK,
1967
+ input: orgProjectScopeInputSchema.extend({ hook_id: sentryIdSchema }),
1968
+ output: sentryProjectHookSchema,
1969
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
1970
+ };
1971
+ const updateWebhookConfigurationDefinition = {
1972
+ id: "sentry.update-webhook-configuration-xp",
1973
+ name: "Update Project Service Hook",
1974
+ description: "Update a project service hook in place.",
1975
+ method: "PUT",
1976
+ path: "/api/0/projects/{organization_slug}/{project_slug}/hooks/{hook_id}/",
1977
+ pathParams: ORG_PROJECT_HOOK,
1978
+ input: orgProjectScopeInputSchema.extend({
1979
+ hook_id: sentryIdSchema,
1980
+ url: z.string().url().optional(),
1981
+ events: z.array(z.string()).optional(),
1982
+ isActive: z.boolean().optional()
1983
+ }),
1984
+ bodyFields: [
1985
+ "url",
1986
+ "events",
1987
+ "isActive"
1988
+ ],
1989
+ output: sentryProjectHookSchema,
1990
+ needsApproval: true,
1991
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectAdmin]
1992
+ };
1993
+ const deleteProjectHookDefinition = {
1994
+ id: "sentry.delete-project-hook",
1995
+ name: "Delete Project Service Hook",
1996
+ description: "Delete a project service hook by id.",
1997
+ method: "DELETE",
1998
+ path: "/api/0/projects/{organization_slug}/{project_slug}/hooks/{hook_id}/",
1999
+ pathParams: ORG_PROJECT_HOOK,
2000
+ input: orgProjectScopeInputSchema.extend({ hook_id: sentryIdSchema }),
2001
+ output: z.unknown(),
2002
+ needsApproval: true,
2003
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectAdmin]
2004
+ };
2005
+
2006
+ //#endregion
2007
+ //#region src/operations/create-project-webhook-subscription.operation.ts
2008
+ const createProjectWebhookSubscriptionOperation = defineSentryEndpoint(createProjectWebhookSubscriptionDefinition, sentryCredentialSet);
2009
+
2010
+ //#endregion
2011
+ //#region src/utils/deploys-endpoints.ts
2012
+ /**
2013
+ * Sentry deploy operations. Maps to PLAN.md §6.9 (2 actions).
2014
+ */
2015
+ const ORG_VERSION$1 = [{
2016
+ name: "organization_slug",
2017
+ placeholder: "{organization_slug}"
2018
+ }, {
2019
+ name: "version",
2020
+ placeholder: "{version}"
2021
+ }];
2022
+ const createReleaseDeployForOrgDefinition = {
2023
+ id: "sentry.create-release-deploy-for-org",
2024
+ name: "Create Release Deploy",
2025
+ description: "Mark a deploy for a release in an environment.",
2026
+ method: "POST",
2027
+ path: "/api/0/organizations/{organization_slug}/releases/{version}/deploys/",
2028
+ pathParams: ORG_VERSION$1,
2029
+ input: orgReleaseScopeInputSchema.extend({
2030
+ environment: z.string().min(1),
2031
+ name: z.string().optional(),
2032
+ url: z.string().url().optional(),
2033
+ projects: z.array(z.string()).optional(),
2034
+ dateStarted: z.iso.datetime().optional(),
2035
+ dateFinished: z.iso.datetime().optional()
2036
+ }),
2037
+ bodyFields: [
2038
+ "environment",
2039
+ "name",
2040
+ "url",
2041
+ "projects",
2042
+ "dateStarted",
2043
+ "dateFinished"
2044
+ ],
2045
+ output: sentryDeploySchema,
2046
+ needsApproval: true,
2047
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2048
+ };
2049
+ const retrieveReleaseDeploymentsDefinition = {
2050
+ id: "sentry.retrieve-release-deployments",
2051
+ name: "Retrieve Release Deployments",
2052
+ description: "List deploys previously recorded against a release.",
2053
+ method: "GET",
2054
+ path: "/api/0/organizations/{organization_slug}/releases/{version}/deploys/",
2055
+ pathParams: ORG_VERSION$1,
2056
+ input: sentryListInputSchema.merge(orgReleaseScopeInputSchema),
2057
+ queryFields: [
2058
+ "cursor",
2059
+ "per_page",
2060
+ "query"
2061
+ ],
2062
+ output: z.array(sentryDeploySchema),
2063
+ pagination: "cursor",
2064
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2065
+ };
2066
+
2067
+ //#endregion
2068
+ //#region src/operations/create-release-deploy-for-org.operation.ts
2069
+ const createReleaseDeployForOrgOperation = defineSentryEndpoint(createReleaseDeployForOrgDefinition, sentryCredentialSet);
2070
+
2071
+ //#endregion
2072
+ //#region src/utils/releases-endpoints.ts
2073
+ /**
2074
+ * Sentry release operations (21 actions — PLAN.md §6.8).
2075
+ * Covers releases, release files, repositories, commits, and release-threshold statuses.
2076
+ */
2077
+ const ORG$5 = [{
2078
+ name: "organization_slug",
2079
+ placeholder: "{organization_slug}"
2080
+ }];
2081
+ const ORG_VERSION = [...ORG$5, {
2082
+ name: "version",
2083
+ placeholder: "{version}"
2084
+ }];
2085
+ const ORG_PROJECT_VERSION = [
2086
+ ...ORG$5,
2087
+ {
2088
+ name: "project_slug",
2089
+ placeholder: "{project_slug}"
2090
+ },
2091
+ {
2092
+ name: "version",
2093
+ placeholder: "{version}"
2094
+ }
2095
+ ];
2096
+ const ORG_REPO = [...ORG$5, {
2097
+ name: "repo_id",
2098
+ placeholder: "{repo_id}"
2099
+ }];
2100
+ const listOrganizationReleasesDefinition = {
2101
+ id: "sentry.list-organization-releases",
2102
+ name: "List Organization Releases",
2103
+ description: "List releases for an organization.",
2104
+ method: "GET",
2105
+ path: "/api/0/organizations/{organization_slug}/releases/",
2106
+ pathParams: ORG$5,
2107
+ input: sentryListInputSchema.merge(orgScopeInputSchema).extend({
2108
+ project: z.array(z.number().int()).optional(),
2109
+ environment: z.array(z.string()).optional(),
2110
+ statsPeriod: z.string().optional(),
2111
+ sort: z.enum([
2112
+ "date",
2113
+ "sessions",
2114
+ "users",
2115
+ "crash_free_users",
2116
+ "crash_free_sessions"
2117
+ ]).optional(),
2118
+ status: z.enum(["open", "archived"]).optional()
2119
+ }),
2120
+ queryFields: [
2121
+ "cursor",
2122
+ "per_page",
2123
+ "query",
2124
+ "project",
2125
+ "environment",
2126
+ "statsPeriod",
2127
+ "sort",
2128
+ "status"
2129
+ ],
2130
+ output: z.array(sentryReleaseSchema),
2131
+ pagination: "cursor",
2132
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2133
+ };
2134
+ const createReleaseForOrganizationDefinition = {
2135
+ id: "sentry.create-release-for-organization",
2136
+ name: "Create Release",
2137
+ description: "Create a release at the organization level.",
2138
+ method: "POST",
2139
+ path: "/api/0/organizations/{organization_slug}/releases/",
2140
+ pathParams: ORG$5,
2141
+ input: orgScopeInputSchema.extend({
2142
+ version: z.string().min(1),
2143
+ ref: z.string().optional(),
2144
+ url: z.string().url().optional(),
2145
+ projects: z.array(z.string()).min(1),
2146
+ dateReleased: z.iso.datetime().optional(),
2147
+ commits: z.array(sentryJsonObjectSchema).optional(),
2148
+ refs: z.array(sentryJsonObjectSchema).optional()
2149
+ }),
2150
+ bodyFields: [
2151
+ "version",
2152
+ "ref",
2153
+ "url",
2154
+ "projects",
2155
+ "dateReleased",
2156
+ "commits",
2157
+ "refs"
2158
+ ],
2159
+ output: sentryReleaseSchema,
2160
+ needsApproval: true,
2161
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2162
+ };
2163
+ const getOrganizationReleaseVersionDefinition = {
2164
+ id: "sentry.get-organization-release-version",
2165
+ name: "Get Release",
2166
+ description: "Fetch a release by version.",
2167
+ method: "GET",
2168
+ path: "/api/0/organizations/{organization_slug}/releases/{version}/",
2169
+ pathParams: ORG_VERSION,
2170
+ input: orgReleaseScopeInputSchema,
2171
+ output: sentryReleaseSchema,
2172
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2173
+ };
2174
+ const updateReleaseDetailsForOrganizationDefinition = {
2175
+ id: "sentry.update-release-details-for-organization",
2176
+ name: "Update Release",
2177
+ description: "Update release metadata (e.g. `dateReleased`, `ref`, commits).",
2178
+ method: "PUT",
2179
+ path: "/api/0/organizations/{organization_slug}/releases/{version}/",
2180
+ pathParams: ORG_VERSION,
2181
+ input: orgReleaseScopeInputSchema.extend({
2182
+ ref: z.string().optional(),
2183
+ url: z.string().url().optional(),
2184
+ dateReleased: z.iso.datetime().optional(),
2185
+ commits: z.array(sentryJsonObjectSchema).optional(),
2186
+ refs: z.array(sentryJsonObjectSchema).optional(),
2187
+ projects: z.array(z.string()).optional()
2188
+ }),
2189
+ bodyFields: [
2190
+ "ref",
2191
+ "url",
2192
+ "dateReleased",
2193
+ "commits",
2194
+ "refs",
2195
+ "projects"
2196
+ ],
2197
+ output: sentryReleaseSchema,
2198
+ needsApproval: true,
2199
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2200
+ };
2201
+ const deleteOrganizationReleaseDefinition = {
2202
+ id: "sentry.delete-organization-release",
2203
+ name: "Delete Release",
2204
+ description: "Delete a release by version.",
2205
+ method: "DELETE",
2206
+ path: "/api/0/organizations/{organization_slug}/releases/{version}/",
2207
+ pathParams: ORG_VERSION,
2208
+ input: orgReleaseScopeInputSchema,
2209
+ output: z.unknown(),
2210
+ needsApproval: true,
2211
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2212
+ };
2213
+ const retrieveOrganizationReleaseCommitsDefinition = {
2214
+ id: "sentry.retrieve-organization-release-commits",
2215
+ name: "Retrieve Release Commits (Org)",
2216
+ description: "List the commits associated with a release.",
2217
+ method: "GET",
2218
+ path: "/api/0/organizations/{organization_slug}/releases/{version}/commits/",
2219
+ pathParams: ORG_VERSION,
2220
+ input: sentryListInputSchema.merge(orgReleaseScopeInputSchema),
2221
+ queryFields: [
2222
+ "cursor",
2223
+ "per_page",
2224
+ "query"
2225
+ ],
2226
+ output: z.array(sentryCommitSchema),
2227
+ pagination: "cursor",
2228
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2229
+ };
2230
+ const retrieveReleaseCommitsDefinition = {
2231
+ id: "sentry.retrieve-release-commits",
2232
+ name: "Retrieve Release Commits (Project)",
2233
+ description: "List the commits associated with a release for a specific project.",
2234
+ method: "GET",
2235
+ path: "/api/0/projects/{organization_slug}/{project_slug}/releases/{version}/commits/",
2236
+ pathParams: ORG_PROJECT_VERSION,
2237
+ input: sentryListInputSchema.merge(orgProjectScopeInputSchema).extend({ version: z.string().min(1) }),
2238
+ queryFields: [
2239
+ "cursor",
2240
+ "per_page",
2241
+ "query"
2242
+ ],
2243
+ output: z.array(sentryCommitSchema),
2244
+ pagination: "cursor",
2245
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2246
+ };
2247
+ const retrieveCommitFilesForReleaseDefinition = {
2248
+ id: "sentry.retrieve-commit-files-for-release",
2249
+ name: "Retrieve Commit Files For Release",
2250
+ description: "List the file-level commit metadata attached to a release.",
2251
+ method: "GET",
2252
+ path: "/api/0/organizations/{organization_slug}/releases/{version}/commitfiles/",
2253
+ pathParams: ORG_VERSION,
2254
+ input: sentryListInputSchema.merge(orgReleaseScopeInputSchema),
2255
+ queryFields: [
2256
+ "cursor",
2257
+ "per_page",
2258
+ "query"
2259
+ ],
2260
+ output: sentryJsonArraySchema,
2261
+ pagination: "cursor",
2262
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2263
+ };
2264
+ const retrieveCommitsForOrganizationRepoDefinition = {
2265
+ id: "sentry.retrieve-commits-for-organization-repo",
2266
+ name: "Retrieve Commits For Org Repo",
2267
+ description: "List commits for a repository linked to the organization.",
2268
+ method: "GET",
2269
+ path: "/api/0/organizations/{organization_slug}/repos/{repo_id}/commits/",
2270
+ pathParams: ORG_REPO,
2271
+ input: sentryListInputSchema.merge(orgScopeInputSchema).extend({ repo_id: sentryIdSchema }),
2272
+ queryFields: [
2273
+ "cursor",
2274
+ "per_page",
2275
+ "query"
2276
+ ],
2277
+ output: z.array(sentryCommitSchema),
2278
+ pagination: "cursor",
2279
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2280
+ };
2281
+ const listOrganizationRepositoriesDefinition = {
2282
+ id: "sentry.list-organization-repositories",
2283
+ name: "List Organization Repositories",
2284
+ description: "List repositories linked to the organization.",
2285
+ method: "GET",
2286
+ path: "/api/0/organizations/{organization_slug}/repos/",
2287
+ pathParams: ORG$5,
2288
+ input: sentryListInputSchema.merge(orgScopeInputSchema).extend({ status: z.enum([
2289
+ "active",
2290
+ "disabled",
2291
+ "pending_deletion",
2292
+ "deletion_in_progress"
2293
+ ]).optional() }),
2294
+ queryFields: [
2295
+ "cursor",
2296
+ "per_page",
2297
+ "query",
2298
+ "status"
2299
+ ],
2300
+ output: z.array(sentryRepositorySchema),
2301
+ pagination: "cursor",
2302
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2303
+ };
2304
+ const retrieveFilesForReleaseDefinition = {
2305
+ id: "sentry.retrieve-files-for-release",
2306
+ name: "Retrieve Release Files (Org)",
2307
+ description: "List the uploaded artifact files attached to an org-level release.",
2308
+ method: "GET",
2309
+ path: "/api/0/organizations/{organization_slug}/releases/{version}/files/",
2310
+ pathParams: ORG_VERSION,
2311
+ input: sentryListInputSchema.merge(orgReleaseScopeInputSchema),
2312
+ queryFields: [
2313
+ "cursor",
2314
+ "per_page",
2315
+ "query"
2316
+ ],
2317
+ output: z.array(sentryReleaseFileSchema),
2318
+ pagination: "cursor",
2319
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2320
+ };
2321
+ const fetchProjectReleaseFilesDefinition = {
2322
+ id: "sentry.fetch-project-release-files",
2323
+ name: "Retrieve Project Release Files",
2324
+ description: "List the uploaded artifact files attached to a project release.",
2325
+ method: "GET",
2326
+ path: "/api/0/projects/{organization_slug}/{project_slug}/releases/{version}/files/",
2327
+ pathParams: ORG_PROJECT_VERSION,
2328
+ input: sentryListInputSchema.merge(orgProjectScopeInputSchema).extend({ version: z.string().min(1) }),
2329
+ queryFields: [
2330
+ "cursor",
2331
+ "per_page",
2332
+ "query"
2333
+ ],
2334
+ output: z.array(sentryReleaseFileSchema),
2335
+ pagination: "cursor",
2336
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2337
+ };
2338
+ const retrieveProjectReleaseFileDetailsDefinition = {
2339
+ id: "sentry.retrieve-project-release-file-details",
2340
+ name: "Retrieve Project Release File",
2341
+ description: "Fetch a single release artifact file by id.",
2342
+ method: "GET",
2343
+ path: "/api/0/projects/{organization_slug}/{project_slug}/releases/{version}/files/{file_id}/",
2344
+ pathParams: [...ORG_PROJECT_VERSION, {
2345
+ name: "file_id",
2346
+ placeholder: "{file_id}"
2347
+ }],
2348
+ input: orgProjectScopeInputSchema.extend({
2349
+ version: z.string().min(1),
2350
+ file_id: sentryIdSchema
2351
+ }),
2352
+ output: sentryReleaseFileSchema,
2353
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2354
+ };
2355
+ const retrieveReleaseFileByIdDefinition = {
2356
+ id: "sentry.retrieve-release-file-by-id",
2357
+ name: "Retrieve Release File (Org)",
2358
+ description: "Fetch a single release artifact file at the org level by id.",
2359
+ method: "GET",
2360
+ path: "/api/0/organizations/{organization_slug}/releases/{version}/files/{file_id}/",
2361
+ pathParams: [...ORG_VERSION, {
2362
+ name: "file_id",
2363
+ placeholder: "{file_id}"
2364
+ }],
2365
+ input: orgReleaseScopeInputSchema.extend({ file_id: sentryIdSchema }),
2366
+ output: sentryReleaseFileSchema,
2367
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2368
+ };
2369
+ const uploadReleaseFileToOrganizationDefinition = {
2370
+ id: "sentry.upload-release-file-to-organization",
2371
+ name: "Upload Release File (Org)",
2372
+ description: "Record the metadata for a release artifact file at the organization level. Actual multipart uploads use the `client.request` escape hatch with `rawBody`.",
2373
+ method: "POST",
2374
+ path: "/api/0/organizations/{organization_slug}/releases/{version}/files/",
2375
+ pathParams: ORG_VERSION,
2376
+ input: orgReleaseScopeInputSchema.extend({
2377
+ name: z.string().min(1),
2378
+ dist: z.string().optional(),
2379
+ headers: z.record(z.string(), z.string()).optional()
2380
+ }),
2381
+ bodyFields: [
2382
+ "name",
2383
+ "dist",
2384
+ "headers"
2385
+ ],
2386
+ output: sentryReleaseFileSchema,
2387
+ needsApproval: true,
2388
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2389
+ };
2390
+ const uploadFileToProjectReleaseDefinition = {
2391
+ id: "sentry.upload-file-to-project-release",
2392
+ name: "Upload Release File (Project)",
2393
+ description: "Record the metadata for a release artifact file on a project release. Actual multipart uploads use the `client.request` escape hatch with `rawBody`.",
2394
+ method: "POST",
2395
+ path: "/api/0/projects/{organization_slug}/{project_slug}/releases/{version}/files/",
2396
+ pathParams: ORG_PROJECT_VERSION,
2397
+ input: orgProjectScopeInputSchema.extend({
2398
+ version: z.string().min(1),
2399
+ name: z.string().min(1),
2400
+ dist: z.string().optional(),
2401
+ headers: z.record(z.string(), z.string()).optional()
2402
+ }),
2403
+ bodyFields: [
2404
+ "name",
2405
+ "dist",
2406
+ "headers"
2407
+ ],
2408
+ output: sentryReleaseFileSchema,
2409
+ needsApproval: true,
2410
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2411
+ };
2412
+ const modifyReleaseFileAttributesDefinition = {
2413
+ id: "sentry.modify-release-file-attributes",
2414
+ name: "Modify Release File Attributes (Org)",
2415
+ description: "Update metadata on a release artifact file at the org level.",
2416
+ method: "PUT",
2417
+ path: "/api/0/organizations/{organization_slug}/releases/{version}/files/{file_id}/",
2418
+ pathParams: [...ORG_VERSION, {
2419
+ name: "file_id",
2420
+ placeholder: "{file_id}"
2421
+ }],
2422
+ input: orgReleaseScopeInputSchema.extend({
2423
+ file_id: sentryIdSchema,
2424
+ name: z.string().optional(),
2425
+ dist: z.string().optional(),
2426
+ headers: z.record(z.string(), z.string()).optional()
2427
+ }),
2428
+ bodyFields: [
2429
+ "name",
2430
+ "dist",
2431
+ "headers"
2432
+ ],
2433
+ output: sentryReleaseFileSchema,
2434
+ needsApproval: true,
2435
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2436
+ };
2437
+ const updateProjectReleaseFileDetailsDefinition = {
2438
+ id: "sentry.update-project-release-file-details",
2439
+ name: "Update Project Release File",
2440
+ description: "Update metadata on a release artifact file for a project release.",
2441
+ method: "PUT",
2442
+ path: "/api/0/projects/{organization_slug}/{project_slug}/releases/{version}/files/{file_id}/",
2443
+ pathParams: [...ORG_PROJECT_VERSION, {
2444
+ name: "file_id",
2445
+ placeholder: "{file_id}"
2446
+ }],
2447
+ input: orgProjectScopeInputSchema.extend({
2448
+ version: z.string().min(1),
2449
+ file_id: sentryIdSchema,
2450
+ name: z.string().optional(),
2451
+ dist: z.string().optional(),
2452
+ headers: z.record(z.string(), z.string()).optional()
2453
+ }),
2454
+ bodyFields: [
2455
+ "name",
2456
+ "dist",
2457
+ "headers"
2458
+ ],
2459
+ output: sentryReleaseFileSchema,
2460
+ needsApproval: true,
2461
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2462
+ };
2463
+ const deleteReleaseFileDefinition = {
2464
+ id: "sentry.delete-release-file",
2465
+ name: "Delete Release File (Project)",
2466
+ description: "Delete a release artifact file for a project release.",
2467
+ method: "DELETE",
2468
+ path: "/api/0/projects/{organization_slug}/{project_slug}/releases/{version}/files/{file_id}/",
2469
+ pathParams: [...ORG_PROJECT_VERSION, {
2470
+ name: "file_id",
2471
+ placeholder: "{file_id}"
2472
+ }],
2473
+ input: orgProjectScopeInputSchema.extend({
2474
+ version: z.string().min(1),
2475
+ file_id: sentryIdSchema
2476
+ }),
2477
+ output: z.unknown(),
2478
+ needsApproval: true,
2479
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2480
+ };
2481
+ const deleteReleaseFileByIdDefinition = {
2482
+ id: "sentry.delete-release-file-by-id",
2483
+ name: "Delete Release File (Org)",
2484
+ description: "Delete a release artifact file at the org level by id.",
2485
+ method: "DELETE",
2486
+ path: "/api/0/organizations/{organization_slug}/releases/{version}/files/{file_id}/",
2487
+ pathParams: [...ORG_VERSION, {
2488
+ name: "file_id",
2489
+ placeholder: "{file_id}"
2490
+ }],
2491
+ input: orgReleaseScopeInputSchema.extend({ file_id: sentryIdSchema }),
2492
+ output: z.unknown(),
2493
+ needsApproval: true,
2494
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2495
+ };
2496
+ const fetchOrganizationReleaseThresholdStatusesDefinition = {
2497
+ id: "sentry.fetch-organization-release-threshold-statuses",
2498
+ name: "Fetch Release Threshold Statuses",
2499
+ description: "Return the release-threshold evaluation statuses for the organization.",
2500
+ method: "GET",
2501
+ path: "/api/0/organizations/{organization_slug}/release-threshold-statuses/",
2502
+ pathParams: ORG$5,
2503
+ input: orgScopeInputSchema.extend({
2504
+ project: z.array(z.number().int()).optional(),
2505
+ environment: z.array(z.string()).optional(),
2506
+ release: z.array(z.string()).optional(),
2507
+ start: z.string().optional(),
2508
+ end: z.string().optional()
2509
+ }),
2510
+ queryFields: [
2511
+ "project",
2512
+ "environment",
2513
+ "release",
2514
+ "start",
2515
+ "end"
2516
+ ],
2517
+ output: sentryJsonObjectSchema,
2518
+ requiredOAuthScopes: [...SENTRY_SCOPE.releaseAdmin]
2519
+ };
2520
+
2521
+ //#endregion
2522
+ //#region src/operations/create-release-for-organization.operation.ts
2523
+ const createReleaseForOrganizationOperation = defineSentryEndpoint(createReleaseForOrganizationDefinition, sentryCredentialSet);
2524
+
2525
+ //#endregion
2526
+ //#region src/operations/create-scim-group-for-organization.operation.ts
2527
+ const createScimGroupForOrganizationOperation = defineSentryEndpoint(createScimGroupForOrganizationDefinition, sentryCredentialSet);
2528
+
2529
+ //#endregion
2530
+ //#region src/utils/issues-endpoints.ts
2531
+ /**
2532
+ * Sentry issue operations. Maps to PLAN.md §6.6 (13 actions).
2533
+ */
2534
+ const ORG$4 = [{
2535
+ name: "organization_slug",
2536
+ placeholder: "{organization_slug}"
2537
+ }];
2538
+ const ORG_PROJECT$4 = [...ORG$4, {
2539
+ name: "project_slug",
2540
+ placeholder: "{project_slug}"
2541
+ }];
2542
+ const ORG_ISSUE$1 = [...ORG$4, {
2543
+ name: "issue_id",
2544
+ placeholder: "{issue_id}"
2545
+ }];
2546
+ const retrieveProjectIssuesListDefinition = {
2547
+ id: "sentry.retrieve-project-issues-list",
2548
+ name: "List Project Issues",
2549
+ description: "List issues for a project.",
2550
+ method: "GET",
2551
+ path: "/api/0/projects/{organization_slug}/{project_slug}/issues/",
2552
+ pathParams: ORG_PROJECT$4,
2553
+ input: sentryListInputSchema.merge(orgProjectScopeInputSchema).extend({
2554
+ statsPeriod: z.string().optional(),
2555
+ query: z.string().optional(),
2556
+ environment: z.array(z.string()).optional(),
2557
+ sort: z.enum([
2558
+ "date",
2559
+ "new",
2560
+ "priority",
2561
+ "freq",
2562
+ "user",
2563
+ "trends"
2564
+ ]).optional(),
2565
+ limit: z.number().int().optional()
2566
+ }),
2567
+ queryFields: [
2568
+ "cursor",
2569
+ "per_page",
2570
+ "query",
2571
+ "statsPeriod",
2572
+ "environment",
2573
+ "sort",
2574
+ "limit"
2575
+ ],
2576
+ output: z.array(sentryIssueSchema),
2577
+ pagination: "cursor",
2578
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
2579
+ };
2580
+ const getOrganizationIssueDetailsDefinition = {
2581
+ id: "sentry.get-organization-issue-details",
2582
+ name: "Get Issue Details",
2583
+ description: "Fetch a single issue by id.",
2584
+ method: "GET",
2585
+ path: "/api/0/organizations/{organization_slug}/issues/{issue_id}/",
2586
+ pathParams: ORG_ISSUE$1,
2587
+ input: orgIssueScopeInputSchema,
2588
+ output: sentryIssueSchema,
2589
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
2590
+ };
2591
+ const updateIssueAttributesInOrganizationDefinition = {
2592
+ id: "sentry.update-issue-attributes-in-organization",
2593
+ name: "Update Issue Attributes (Org Scope)",
2594
+ description: "Update issue status, assignee, or tags on one or more issues identified by id list.",
2595
+ method: "PUT",
2596
+ path: "/api/0/organizations/{organization_slug}/issues/",
2597
+ pathParams: ORG$4,
2598
+ input: orgScopeInputSchema.extend({
2599
+ id: z.array(sentryIdSchema).optional(),
2600
+ status: sentryIssueStatusSchema.optional(),
2601
+ statusDetails: sentryJsonObjectSchema.optional(),
2602
+ assignedTo: z.string().nullable().optional(),
2603
+ hasSeen: z.boolean().optional(),
2604
+ isBookmarked: z.boolean().optional(),
2605
+ isPublic: z.boolean().optional(),
2606
+ merge: z.boolean().optional(),
2607
+ discard: z.boolean().optional(),
2608
+ ignoreDuration: z.number().int().optional(),
2609
+ ignoreCount: z.number().int().optional(),
2610
+ ignoreUserCount: z.number().int().optional(),
2611
+ ignoreWindow: z.number().int().optional(),
2612
+ ignoreUserWindow: z.number().int().optional()
2613
+ }),
2614
+ queryFields: ["id"],
2615
+ bodyFields: [
2616
+ "status",
2617
+ "statusDetails",
2618
+ "assignedTo",
2619
+ "hasSeen",
2620
+ "isBookmarked",
2621
+ "isPublic",
2622
+ "merge",
2623
+ "discard",
2624
+ "ignoreDuration",
2625
+ "ignoreCount",
2626
+ "ignoreUserCount",
2627
+ "ignoreWindow",
2628
+ "ignoreUserWindow"
2629
+ ],
2630
+ output: sentryJsonObjectSchema,
2631
+ needsApproval: true,
2632
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventAdmin]
2633
+ };
2634
+ const updateProjectIssueStatusAndDetailsDefinition = {
2635
+ id: "sentry.update-project-issue-status-and-details",
2636
+ name: "Update Issues (Project Scope)",
2637
+ description: "Bulk-update issues in a single project by id set or query.",
2638
+ method: "PUT",
2639
+ path: "/api/0/projects/{organization_slug}/{project_slug}/issues/",
2640
+ pathParams: ORG_PROJECT$4,
2641
+ input: orgProjectScopeInputSchema.extend({
2642
+ id: z.array(sentryIdSchema).optional(),
2643
+ status: sentryIssueStatusSchema.optional(),
2644
+ statusDetails: sentryJsonObjectSchema.optional(),
2645
+ assignedTo: z.string().nullable().optional(),
2646
+ hasSeen: z.boolean().optional(),
2647
+ isBookmarked: z.boolean().optional(),
2648
+ isPublic: z.boolean().optional(),
2649
+ merge: z.boolean().optional(),
2650
+ discard: z.boolean().optional(),
2651
+ ignoreDuration: z.number().int().optional()
2652
+ }),
2653
+ queryFields: ["id"],
2654
+ bodyFields: [
2655
+ "status",
2656
+ "statusDetails",
2657
+ "assignedTo",
2658
+ "hasSeen",
2659
+ "isBookmarked",
2660
+ "isPublic",
2661
+ "merge",
2662
+ "discard",
2663
+ "ignoreDuration"
2664
+ ],
2665
+ output: sentryJsonObjectSchema,
2666
+ needsApproval: true,
2667
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventAdmin]
2668
+ };
2669
+ const deleteOrganizationIssueDefinition = {
2670
+ id: "sentry.delete-organization-issue",
2671
+ name: "Delete Issue (Org Scope)",
2672
+ description: "Delete an issue by id.",
2673
+ method: "DELETE",
2674
+ path: "/api/0/organizations/{organization_slug}/issues/{issue_id}/",
2675
+ pathParams: ORG_ISSUE$1,
2676
+ input: orgIssueScopeInputSchema,
2677
+ output: z.unknown(),
2678
+ needsApproval: true,
2679
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventAdmin]
2680
+ };
2681
+ const deleteProjectIssuesDefinition = {
2682
+ id: "sentry.delete-project-issues",
2683
+ name: "Delete Project Issues",
2684
+ description: "Bulk-delete issues on a project by id list or query.",
2685
+ method: "DELETE",
2686
+ path: "/api/0/projects/{organization_slug}/{project_slug}/issues/",
2687
+ pathParams: ORG_PROJECT$4,
2688
+ input: orgProjectScopeInputSchema.extend({
2689
+ id: z.array(sentryIdSchema).optional(),
2690
+ query: z.string().optional()
2691
+ }),
2692
+ queryFields: ["id", "query"],
2693
+ output: z.unknown(),
2694
+ needsApproval: true,
2695
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventAdmin]
2696
+ };
2697
+ const retrieveIssueEventsByIdDefinition = {
2698
+ id: "sentry.retrieve-issue-events-by-id",
2699
+ name: "Retrieve Issue Events",
2700
+ description: "List events that have rolled up into an issue.",
2701
+ method: "GET",
2702
+ path: "/api/0/organizations/{organization_slug}/issues/{issue_id}/events/",
2703
+ pathParams: ORG_ISSUE$1,
2704
+ input: sentryListInputSchema.merge(orgIssueScopeInputSchema).extend({
2705
+ statsPeriod: z.string().optional(),
2706
+ environment: z.array(z.string()).optional(),
2707
+ full: z.boolean().optional()
2708
+ }),
2709
+ queryFields: [
2710
+ "cursor",
2711
+ "per_page",
2712
+ "query",
2713
+ "statsPeriod",
2714
+ "environment",
2715
+ "full"
2716
+ ],
2717
+ output: sentryJsonArraySchema,
2718
+ pagination: "cursor",
2719
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
2720
+ };
2721
+ const retrieveIssueHashesForOrganizationDefinition = {
2722
+ id: "sentry.retrieve-issue-hashes-for-organization",
2723
+ name: "Retrieve Issue Hashes",
2724
+ description: "List the grouping-hash keys associated with an issue.",
2725
+ method: "GET",
2726
+ path: "/api/0/organizations/{organization_slug}/issues/{issue_id}/hashes/",
2727
+ pathParams: ORG_ISSUE$1,
2728
+ input: orgIssueScopeInputSchema,
2729
+ output: sentryJsonArraySchema,
2730
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
2731
+ };
2732
+ const retrieveIssueTagDetailsDefinition = {
2733
+ id: "sentry.retrieve-issue-tag-details",
2734
+ name: "Retrieve Issue Tag Details",
2735
+ description: "Return tag key metadata for one issue.",
2736
+ method: "GET",
2737
+ path: "/api/0/organizations/{organization_slug}/issues/{issue_id}/tags/{key}/",
2738
+ pathParams: [...ORG_ISSUE$1, {
2739
+ name: "key",
2740
+ placeholder: "{key}"
2741
+ }],
2742
+ input: orgIssueScopeInputSchema.extend({ key: z.string().min(1) }),
2743
+ output: sentryJsonObjectSchema,
2744
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
2745
+ };
2746
+ const fetchTagValuesForIssueDefinition = {
2747
+ id: "sentry.fetch-tag-values-for-issue",
2748
+ name: "Fetch Tag Values For Issue",
2749
+ description: "List the distinct values for a tag key within one issue.",
2750
+ method: "GET",
2751
+ path: "/api/0/organizations/{organization_slug}/issues/{issue_id}/tags/{key}/values/",
2752
+ pathParams: [...ORG_ISSUE$1, {
2753
+ name: "key",
2754
+ placeholder: "{key}"
2755
+ }],
2756
+ input: sentryListInputSchema.merge(orgIssueScopeInputSchema).extend({
2757
+ key: z.string().min(1),
2758
+ query: z.string().optional()
2759
+ }),
2760
+ queryFields: [
2761
+ "cursor",
2762
+ "per_page",
2763
+ "query"
2764
+ ],
2765
+ output: sentryJsonArraySchema,
2766
+ pagination: "cursor",
2767
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
2768
+ };
2769
+ const createSentryExternalIssueLinkDefinition = {
2770
+ id: "sentry.create-sentry-external-issue-link",
2771
+ name: "Create External Issue Link",
2772
+ description: "Link a Sentry issue to an external tracking record (Linear, Jira, etc.) by uuid.",
2773
+ method: "POST",
2774
+ path: "/api/0/sentry-app-installations/{install_uuid}/external-issues/",
2775
+ pathParams: [{
2776
+ name: "install_uuid",
2777
+ placeholder: "{install_uuid}"
2778
+ }],
2779
+ input: z.object({
2780
+ install_uuid: sentryIdSchema,
2781
+ issueId: sentryIdSchema,
2782
+ webUrl: z.string().url(),
2783
+ project: z.string().optional(),
2784
+ identifier: z.string().optional()
2785
+ }),
2786
+ bodyFields: [
2787
+ "issueId",
2788
+ "webUrl",
2789
+ "project",
2790
+ "identifier"
2791
+ ],
2792
+ output: sentryJsonObjectSchema,
2793
+ needsApproval: true,
2794
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventAdmin]
2795
+ };
2796
+ const deleteExternalIssueByUuidDefinition = {
2797
+ id: "sentry.delete-external-issue-by-uuid",
2798
+ name: "Delete External Issue",
2799
+ description: "Unlink an external issue record from a Sentry issue by uuid.",
2800
+ method: "DELETE",
2801
+ path: "/api/0/sentry-app-installations/{install_uuid}/external-issues/{external_issue_id}/",
2802
+ pathParams: [{
2803
+ name: "install_uuid",
2804
+ placeholder: "{install_uuid}"
2805
+ }, {
2806
+ name: "external_issue_id",
2807
+ placeholder: "{external_issue_id}"
2808
+ }],
2809
+ input: z.object({
2810
+ install_uuid: sentryIdSchema,
2811
+ external_issue_id: sentryIdSchema
2812
+ }),
2813
+ output: z.unknown(),
2814
+ needsApproval: true,
2815
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventAdmin]
2816
+ };
2817
+ const retrieveShortIdForOrganizationDefinition = {
2818
+ id: "sentry.retrieve-short-id-for-organization",
2819
+ name: "Resolve Short ID",
2820
+ description: "Resolve a Sentry short id (e.g. `PROJ-123`) to its issue details.",
2821
+ method: "GET",
2822
+ path: "/api/0/organizations/{organization_slug}/shortids/{short_id}/",
2823
+ pathParams: [...ORG$4, {
2824
+ name: "short_id",
2825
+ placeholder: "{short_id}"
2826
+ }],
2827
+ input: orgScopeInputSchema.extend({ short_id: z.string().min(1) }),
2828
+ output: sentryJsonObjectSchema,
2829
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
2830
+ };
2831
+
2832
+ //#endregion
2833
+ //#region src/operations/create-sentry-external-issue-link.operation.ts
2834
+ const createSentryExternalIssueLinkOperation = defineSentryEndpoint(createSentryExternalIssueLinkDefinition, sentryCredentialSet);
2835
+
2836
+ //#endregion
2837
+ //#region src/operations/create-team-project-for-organization.operation.ts
2838
+ const createTeamProjectForOrganizationOperation = defineSentryEndpoint(createTeamProjectForOrganizationDefinition, sentryCredentialSet);
2839
+
2840
+ //#endregion
2841
+ //#region src/operations/create-user-for-saml-integration.operation.ts
2842
+ const createUserForSamlIntegrationOperation = defineSentryEndpoint(createUserForSamlIntegrationDefinition, sentryCredentialSet);
2843
+
2844
+ //#endregion
2845
+ //#region src/utils/debug-files-endpoints.ts
2846
+ /**
2847
+ * Sentry debug-information file (DIF / dSYM) operations.
2848
+ * Maps to PLAN.md §6.19 (3 actions).
2849
+ */
2850
+ const ORG_PROJECT$3 = [{
2851
+ name: "organization_slug",
2852
+ placeholder: "{organization_slug}"
2853
+ }, {
2854
+ name: "project_slug",
2855
+ placeholder: "{project_slug}"
2856
+ }];
2857
+ const retrieveDsymFilesForProjectDefinition = {
2858
+ id: "sentry.retrieve-dsym-files-for-project",
2859
+ name: "List Debug Files",
2860
+ description: "List the uploaded debug-information files (dSYMs, etc.) for a project.",
2861
+ method: "GET",
2862
+ path: "/api/0/projects/{organization_slug}/{project_slug}/files/dsyms/",
2863
+ pathParams: ORG_PROJECT$3,
2864
+ input: sentryListInputSchema.merge(orgProjectScopeInputSchema).extend({
2865
+ debug_id: z.string().optional(),
2866
+ file_formats: z.array(z.string()).optional()
2867
+ }),
2868
+ queryFields: [
2869
+ "cursor",
2870
+ "per_page",
2871
+ "query",
2872
+ "debug_id",
2873
+ "file_formats"
2874
+ ],
2875
+ output: z.array(sentryDebugFileSchema),
2876
+ pagination: "cursor",
2877
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
2878
+ };
2879
+ const uploadDsymsFileToProjectDefinition = {
2880
+ id: "sentry.upload-dsyms-file-to-project",
2881
+ name: "Upload Debug File",
2882
+ description: "Record a debug-information file upload for a project. Actual multipart upload uses the `client.request` escape hatch with `rawBody`.",
2883
+ method: "POST",
2884
+ path: "/api/0/projects/{organization_slug}/{project_slug}/files/dsyms/",
2885
+ pathParams: ORG_PROJECT$3,
2886
+ input: orgProjectScopeInputSchema.extend({ checksums: z.array(z.string()).optional() }),
2887
+ bodyFields: ["checksums"],
2888
+ output: sentryDebugFileSchema,
2889
+ needsApproval: true,
2890
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectWrite]
2891
+ };
2892
+ const deleteDsymsForProjectDefinition = {
2893
+ id: "sentry.delete-dsyms-for-project",
2894
+ name: "Delete Debug File",
2895
+ description: "Delete a debug-information file by id.",
2896
+ method: "DELETE",
2897
+ path: "/api/0/projects/{organization_slug}/{project_slug}/files/dsyms/",
2898
+ pathParams: ORG_PROJECT$3,
2899
+ input: orgProjectScopeInputSchema.extend({ id: sentryIdSchema }),
2900
+ queryFields: ["id"],
2901
+ output: z.unknown(),
2902
+ needsApproval: true,
2903
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectWrite]
2904
+ };
2905
+
2906
+ //#endregion
2907
+ //#region src/operations/delete-dsyms-for-project.operation.ts
2908
+ const deleteDsymsForProjectOperation = defineSentryEndpoint(deleteDsymsForProjectDefinition, sentryCredentialSet);
2909
+
2910
+ //#endregion
2911
+ //#region src/operations/delete-external-issue-by-uuid.operation.ts
2912
+ const deleteExternalIssueByUuidOperation = defineSentryEndpoint(deleteExternalIssueByUuidDefinition, sentryCredentialSet);
2913
+
2914
+ //#endregion
2915
+ //#region src/operations/delete-external-team-by-id.operation.ts
2916
+ const deleteExternalTeamByIdOperation = defineSentryEndpoint(deleteExternalTeamByIdDefinition, sentryCredentialSet);
2917
+
2918
+ //#endregion
2919
+ //#region src/operations/delete-external-user-from-organization.operation.ts
2920
+ const deleteExternalUserFromOrganizationOperation = defineSentryEndpoint(deleteExternalUserFromOrganizationDefinition, sentryCredentialSet);
2921
+
2922
+ //#endregion
2923
+ //#region src/operations/delete-member-from-team.operation.ts
2924
+ const deleteMemberFromTeamOperation = defineSentryEndpoint(deleteMemberFromTeamDefinition, sentryCredentialSet);
2925
+
2926
+ //#endregion
2927
+ //#region src/utils/notifications-endpoints.ts
2928
+ /**
2929
+ * Sentry notification-action operations. Maps to PLAN.md §6.12 (5 actions).
2930
+ */
2931
+ const ORG$3 = [{
2932
+ name: "organization_slug",
2933
+ placeholder: "{organization_slug}"
2934
+ }];
2935
+ const ORG_ACTION = [...ORG$3, {
2936
+ name: "action_id",
2937
+ placeholder: "{action_id}"
2938
+ }];
2939
+ const viewOrganizationNotificationActionsDefinition = {
2940
+ id: "sentry.view-organization-notification-actions",
2941
+ name: "List Notification Actions",
2942
+ description: "List organization notification actions.",
2943
+ method: "GET",
2944
+ path: "/api/0/organizations/{organization_slug}/notifications/actions/",
2945
+ pathParams: ORG$3,
2946
+ input: sentryListInputSchema.merge(orgScopeInputSchema).extend({
2947
+ project: z.array(z.number().int()).optional(),
2948
+ triggerType: z.string().optional(),
2949
+ serviceType: z.string().optional()
2950
+ }),
2951
+ queryFields: [
2952
+ "cursor",
2953
+ "per_page",
2954
+ "query",
2955
+ "project",
2956
+ "triggerType",
2957
+ "serviceType"
2958
+ ],
2959
+ output: z.array(sentryNotificationActionSchema),
2960
+ pagination: "cursor",
2961
+ requiredOAuthScopes: [...SENTRY_SCOPE.alertsRead]
2962
+ };
2963
+ const retrieveNotificationActionByOrgIdDefinition = {
2964
+ id: "sentry.retrieve-notification-action-by-org-id",
2965
+ name: "Retrieve Notification Action",
2966
+ description: "Fetch a single notification action by id.",
2967
+ method: "GET",
2968
+ path: "/api/0/organizations/{organization_slug}/notifications/actions/{action_id}/",
2969
+ pathParams: ORG_ACTION,
2970
+ input: orgScopeInputSchema.extend({ action_id: sentryIdSchema }),
2971
+ output: sentryNotificationActionSchema,
2972
+ requiredOAuthScopes: [...SENTRY_SCOPE.alertsRead]
2973
+ };
2974
+ const submitNotificationActionApiDataDefinition = {
2975
+ id: "sentry.submit-notification-action-api-data",
2976
+ name: "Create Notification Action",
2977
+ description: "Create a new organization notification action.",
2978
+ method: "POST",
2979
+ path: "/api/0/organizations/{organization_slug}/notifications/actions/",
2980
+ pathParams: ORG$3,
2981
+ input: orgScopeInputSchema.extend({
2982
+ serviceType: z.string().min(1),
2983
+ targetType: z.string().min(1),
2984
+ targetDisplay: z.string().optional(),
2985
+ targetIdentifier: z.string().optional(),
2986
+ triggerType: z.string().min(1),
2987
+ projects: z.array(z.string()).optional(),
2988
+ integrationId: z.string().optional()
2989
+ }),
2990
+ bodyFields: [
2991
+ "serviceType",
2992
+ "targetType",
2993
+ "targetDisplay",
2994
+ "targetIdentifier",
2995
+ "triggerType",
2996
+ "projects",
2997
+ "integrationId"
2998
+ ],
2999
+ output: sentryNotificationActionSchema,
3000
+ needsApproval: true,
3001
+ requiredOAuthScopes: [...SENTRY_SCOPE.alertsWrite]
3002
+ };
3003
+ const modifyOrganizationNotificationActionDefinition = {
3004
+ id: "sentry.modify-organization-notification-action",
3005
+ name: "Update Notification Action",
3006
+ description: "Update a notification action in place.",
3007
+ method: "PUT",
3008
+ path: "/api/0/organizations/{organization_slug}/notifications/actions/{action_id}/",
3009
+ pathParams: ORG_ACTION,
3010
+ input: orgScopeInputSchema.extend({
3011
+ action_id: sentryIdSchema,
3012
+ serviceType: z.string().optional(),
3013
+ targetType: z.string().optional(),
3014
+ targetDisplay: z.string().optional(),
3015
+ targetIdentifier: z.string().optional(),
3016
+ triggerType: z.string().optional(),
3017
+ projects: z.array(z.string()).optional(),
3018
+ integrationId: z.string().optional()
3019
+ }),
3020
+ bodyFields: [
3021
+ "serviceType",
3022
+ "targetType",
3023
+ "targetDisplay",
3024
+ "targetIdentifier",
3025
+ "triggerType",
3026
+ "projects",
3027
+ "integrationId"
3028
+ ],
3029
+ output: sentryNotificationActionSchema,
3030
+ needsApproval: true,
3031
+ requiredOAuthScopes: [...SENTRY_SCOPE.alertsWrite]
3032
+ };
3033
+ const deleteOrgNotificationActionDefinition = {
3034
+ id: "sentry.delete-org-notification-action",
3035
+ name: "Delete Notification Action",
3036
+ description: "Delete a notification action by id.",
3037
+ method: "DELETE",
3038
+ path: "/api/0/organizations/{organization_slug}/notifications/actions/{action_id}/",
3039
+ pathParams: ORG_ACTION,
3040
+ input: orgScopeInputSchema.extend({ action_id: sentryIdSchema }),
3041
+ output: z.unknown(),
3042
+ needsApproval: true,
3043
+ requiredOAuthScopes: [...SENTRY_SCOPE.alertsWrite]
3044
+ };
3045
+
3046
+ //#endregion
3047
+ //#region src/operations/delete-org-notification-action.operation.ts
3048
+ const deleteOrgNotificationActionOperation = defineSentryEndpoint(deleteOrgNotificationActionDefinition, sentryCredentialSet);
3049
+
3050
+ //#endregion
3051
+ //#region src/operations/delete-organization-alert-rule.operation.ts
3052
+ const deleteOrganizationAlertRuleOperation = defineSentryEndpoint(deleteOrganizationAlertRuleDefinition, sentryCredentialSet);
3053
+
3054
+ //#endregion
3055
+ //#region src/operations/delete-organization-dashboard.operation.ts
3056
+ const deleteOrganizationDashboardOperation = defineSentryEndpoint(deleteOrganizationDashboardDefinition, sentryCredentialSet);
3057
+
3058
+ //#endregion
3059
+ //#region src/utils/discover-endpoints.ts
3060
+ /**
3061
+ * Sentry Discover saved-query operations. Maps to PLAN.md §6.15 (5 actions).
3062
+ */
3063
+ const ORG$2 = [{
3064
+ name: "organization_slug",
3065
+ placeholder: "{organization_slug}"
3066
+ }];
3067
+ const ORG_QUERY = [...ORG$2, {
3068
+ name: "query_id",
3069
+ placeholder: "{query_id}"
3070
+ }];
3071
+ const saveOrganizationDiscoverQueryDefinition = {
3072
+ id: "sentry.save-organization-discover-query",
3073
+ name: "Save Discover Query",
3074
+ description: "Create a new saved Discover query.",
3075
+ method: "POST",
3076
+ path: "/api/0/organizations/{organization_slug}/discover/saved/",
3077
+ pathParams: ORG$2,
3078
+ input: orgScopeInputSchema.extend({
3079
+ name: z.string().min(1),
3080
+ query: z.string().optional(),
3081
+ fields: z.array(z.string()).optional(),
3082
+ orderby: z.string().optional(),
3083
+ projects: z.array(z.number().int()).optional(),
3084
+ environment: z.array(z.string()).optional(),
3085
+ range: z.string().optional(),
3086
+ start: z.string().optional(),
3087
+ end: z.string().optional(),
3088
+ queryDataset: z.string().optional()
3089
+ }),
3090
+ bodyFields: [
3091
+ "name",
3092
+ "query",
3093
+ "fields",
3094
+ "orderby",
3095
+ "projects",
3096
+ "environment",
3097
+ "range",
3098
+ "start",
3099
+ "end",
3100
+ "queryDataset"
3101
+ ],
3102
+ output: sentryDiscoverSavedQuerySchema,
3103
+ needsApproval: true,
3104
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgWrite]
3105
+ };
3106
+ const retrieveSavedDiscoverQueriesDefinition = {
3107
+ id: "sentry.retrieve-saved-discover-queries",
3108
+ name: "List Saved Discover Queries",
3109
+ description: "List saved Discover queries.",
3110
+ method: "GET",
3111
+ path: "/api/0/organizations/{organization_slug}/discover/saved/",
3112
+ pathParams: ORG$2,
3113
+ input: sentryListInputSchema.merge(orgScopeInputSchema),
3114
+ queryFields: [
3115
+ "cursor",
3116
+ "per_page",
3117
+ "query"
3118
+ ],
3119
+ output: z.array(sentryDiscoverSavedQuerySchema),
3120
+ pagination: "cursor",
3121
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgRead]
3122
+ };
3123
+ const retrieveSavedDiscoverQueryForOrganizationDefinition = {
3124
+ id: "sentry.retrieve-saved-discover-query-for-organization",
3125
+ name: "Retrieve Saved Discover Query",
3126
+ description: "Fetch one saved Discover query by id.",
3127
+ method: "GET",
3128
+ path: "/api/0/organizations/{organization_slug}/discover/saved/{query_id}/",
3129
+ pathParams: ORG_QUERY,
3130
+ input: orgScopeInputSchema.extend({ query_id: sentryIdSchema }),
3131
+ output: sentryDiscoverSavedQuerySchema,
3132
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgRead]
3133
+ };
3134
+ const updateSavedQueryForOrganizationDefinition = {
3135
+ id: "sentry.update-saved-query-for-organization",
3136
+ name: "Update Saved Discover Query",
3137
+ description: "Update a saved Discover query.",
3138
+ method: "PUT",
3139
+ path: "/api/0/organizations/{organization_slug}/discover/saved/{query_id}/",
3140
+ pathParams: ORG_QUERY,
3141
+ input: orgScopeInputSchema.extend({
3142
+ query_id: sentryIdSchema,
3143
+ name: z.string().optional(),
3144
+ query: z.string().optional(),
3145
+ fields: z.array(z.string()).optional(),
3146
+ orderby: z.string().optional(),
3147
+ projects: z.array(z.number().int()).optional(),
3148
+ environment: z.array(z.string()).optional(),
3149
+ range: z.string().optional(),
3150
+ start: z.string().optional(),
3151
+ end: z.string().optional(),
3152
+ queryDataset: z.string().optional()
3153
+ }),
3154
+ bodyFields: [
3155
+ "name",
3156
+ "query",
3157
+ "fields",
3158
+ "orderby",
3159
+ "projects",
3160
+ "environment",
3161
+ "range",
3162
+ "start",
3163
+ "end",
3164
+ "queryDataset"
3165
+ ],
3166
+ output: sentryDiscoverSavedQuerySchema,
3167
+ needsApproval: true,
3168
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgWrite]
3169
+ };
3170
+ const deleteOrganizationDiscoverQueryDefinition = {
3171
+ id: "sentry.delete-organization-discover-query",
3172
+ name: "Delete Saved Discover Query",
3173
+ description: "Delete a saved Discover query by id.",
3174
+ method: "DELETE",
3175
+ path: "/api/0/organizations/{organization_slug}/discover/saved/{query_id}/",
3176
+ pathParams: ORG_QUERY,
3177
+ input: orgScopeInputSchema.extend({ query_id: sentryIdSchema }),
3178
+ output: z.unknown(),
3179
+ needsApproval: true,
3180
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgWrite]
3181
+ };
3182
+
3183
+ //#endregion
3184
+ //#region src/operations/delete-organization-discover-query.operation.ts
3185
+ const deleteOrganizationDiscoverQueryOperation = defineSentryEndpoint(deleteOrganizationDiscoverQueryDefinition, sentryCredentialSet);
3186
+
3187
+ //#endregion
3188
+ //#region src/utils/organizations-endpoints.ts
3189
+ /**
3190
+ * Operations for Sentry organization-level endpoints.
3191
+ * Maps to PLAN.md §6.1 (15 actions).
3192
+ */
3193
+ const ORG_PATH_PARAMS = [{
3194
+ name: "organization_slug",
3195
+ placeholder: "{organization_slug}"
3196
+ }];
3197
+ const getOrganizationByIdOrSlugDefinition = {
3198
+ id: "sentry.get-organization-by-id-or-slug",
3199
+ name: "Get Organization By ID or Slug",
3200
+ description: "Return metadata for a single organization identified by its slug or numeric ID.",
3201
+ method: "GET",
3202
+ path: "/api/0/organizations/{organization_slug}/",
3203
+ pathParams: ORG_PATH_PARAMS,
3204
+ input: orgScopeInputSchema,
3205
+ output: sentryOrganizationDetailsSchema,
3206
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgRead]
3207
+ };
3208
+ const getOrganizationDetailsDefinition = {
3209
+ id: "sentry.get-organization-details",
3210
+ name: "Get Organization Details",
3211
+ description: "Alias of `get_organization_by_id_or_slug` preserved for Composio parity.",
3212
+ method: "GET",
3213
+ path: "/api/0/organizations/{organization_slug}/",
3214
+ pathParams: ORG_PATH_PARAMS,
3215
+ input: orgScopeInputSchema,
3216
+ output: sentryOrganizationDetailsSchema,
3217
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgRead]
3218
+ };
3219
+ const modifyOrganizationSettingsDefinition = {
3220
+ id: "sentry.modify-organization-settings",
3221
+ name: "Modify Organization Settings",
3222
+ description: "Update organization settings such as display name, slug, or feature flags.",
3223
+ method: "PUT",
3224
+ path: "/api/0/organizations/{organization_slug}/",
3225
+ pathParams: ORG_PATH_PARAMS,
3226
+ input: orgScopeInputSchema.extend({
3227
+ name: z.string().min(1).optional(),
3228
+ slug: sentrySlugSchema.optional(),
3229
+ defaultRole: z.string().optional(),
3230
+ openMembership: z.boolean().optional(),
3231
+ allowSharedIssues: z.boolean().optional(),
3232
+ enhancedPrivacy: z.boolean().optional(),
3233
+ dataScrubber: z.boolean().optional(),
3234
+ dataScrubberDefaults: z.boolean().optional(),
3235
+ scrubIPAddresses: z.boolean().optional(),
3236
+ storeCrashReports: z.number().int().optional(),
3237
+ attachmentsRole: z.string().optional(),
3238
+ debugFilesRole: z.string().optional(),
3239
+ eventsMemberAdmin: z.boolean().optional(),
3240
+ alertsMemberWrite: z.boolean().optional(),
3241
+ codecovAccess: z.boolean().optional(),
3242
+ githubOpenPRBot: z.boolean().optional(),
3243
+ githubNudgeInvite: z.boolean().optional()
3244
+ }),
3245
+ bodyFields: [
3246
+ "name",
3247
+ "slug",
3248
+ "defaultRole",
3249
+ "openMembership",
3250
+ "allowSharedIssues",
3251
+ "enhancedPrivacy",
3252
+ "dataScrubber",
3253
+ "dataScrubberDefaults",
3254
+ "scrubIPAddresses",
3255
+ "storeCrashReports",
3256
+ "attachmentsRole",
3257
+ "debugFilesRole",
3258
+ "eventsMemberAdmin",
3259
+ "alertsMemberWrite",
3260
+ "codecovAccess",
3261
+ "githubOpenPRBot",
3262
+ "githubNudgeInvite"
3263
+ ],
3264
+ output: sentryOrganizationDetailsSchema,
3265
+ needsApproval: true,
3266
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgWrite]
3267
+ };
3268
+ const getOrganizationEnvironmentsDefinition = {
3269
+ id: "sentry.get-organization-environments",
3270
+ name: "Get Organization Environments",
3271
+ description: "List the environments visible to the organization across all projects.",
3272
+ method: "GET",
3273
+ path: "/api/0/organizations/{organization_slug}/environments/",
3274
+ pathParams: ORG_PATH_PARAMS,
3275
+ input: orgScopeInputSchema.extend({ visibility: z.enum([
3276
+ "visible",
3277
+ "hidden",
3278
+ "all"
3279
+ ]).optional() }),
3280
+ queryFields: ["visibility"],
3281
+ output: z.array(sentryEnvironmentSchema),
3282
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
3283
+ };
3284
+ const getOrganizationSessionsDefinition = {
3285
+ id: "sentry.get-organization-sessions",
3286
+ name: "Get Organization Sessions",
3287
+ description: "Fetch session-health aggregates for the organization. Supports Release Health queries.",
3288
+ method: "GET",
3289
+ path: "/api/0/organizations/{organization_slug}/sessions/",
3290
+ pathParams: ORG_PATH_PARAMS,
3291
+ input: orgScopeInputSchema.extend({
3292
+ project: z.array(z.number().int()).optional(),
3293
+ environment: z.array(z.string()).optional(),
3294
+ field: z.array(z.string()).min(1),
3295
+ statsPeriod: z.string().optional(),
3296
+ interval: z.string().optional(),
3297
+ groupBy: z.array(z.string()).optional(),
3298
+ query: z.string().optional(),
3299
+ orderBy: z.string().optional(),
3300
+ per_page: z.number().int().optional(),
3301
+ includeTotals: z.number().int().optional(),
3302
+ includeSeries: z.number().int().optional()
3303
+ }),
3304
+ queryFields: [
3305
+ "project",
3306
+ "environment",
3307
+ "field",
3308
+ "statsPeriod",
3309
+ "interval",
3310
+ "groupBy",
3311
+ "query",
3312
+ "orderBy",
3313
+ "per_page",
3314
+ "includeTotals",
3315
+ "includeSeries"
3316
+ ],
3317
+ output: sentryJsonObjectSchema,
3318
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
3319
+ };
3320
+ const getOrganizationStatsSummaryDefinition = {
3321
+ id: "sentry.get-organization-stats-summary",
3322
+ name: "Get Organization Stats Summary",
3323
+ description: "Return a high-level stats summary for the organization.",
3324
+ method: "GET",
3325
+ path: "/api/0/organizations/{organization_slug}/stats-summary/",
3326
+ pathParams: ORG_PATH_PARAMS,
3327
+ input: orgScopeInputSchema.extend({
3328
+ project: z.array(z.number().int()).optional(),
3329
+ statsPeriod: z.string().optional(),
3330
+ start: z.string().optional(),
3331
+ end: z.string().optional(),
3332
+ field: z.array(z.string()).optional(),
3333
+ category: z.array(z.string()).optional(),
3334
+ outcome: z.array(z.string()).optional(),
3335
+ reason: z.array(z.string()).optional()
3336
+ }),
3337
+ queryFields: [
3338
+ "project",
3339
+ "statsPeriod",
3340
+ "start",
3341
+ "end",
3342
+ "field",
3343
+ "category",
3344
+ "outcome",
3345
+ "reason"
3346
+ ],
3347
+ output: sentryJsonObjectSchema,
3348
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgRead]
3349
+ };
3350
+ const retrieveOrganizationStatsV2Definition = {
3351
+ id: "sentry.retrieve-organization-stats-v2",
3352
+ name: "Retrieve Organization Stats (v2)",
3353
+ description: "Return the v2 stats endpoint for outcomes/categories.",
3354
+ method: "GET",
3355
+ path: "/api/0/organizations/{organization_slug}/stats_v2/",
3356
+ pathParams: ORG_PATH_PARAMS,
3357
+ input: orgScopeInputSchema.extend({
3358
+ field: z.array(z.string()).min(1),
3359
+ statsPeriod: z.string().optional(),
3360
+ interval: z.string().optional(),
3361
+ groupBy: z.array(z.string()).optional(),
3362
+ project: z.array(z.number().int()).optional(),
3363
+ category: z.array(z.string()).optional(),
3364
+ outcome: z.array(z.string()).optional(),
3365
+ reason: z.array(z.string()).optional(),
3366
+ start: z.string().optional(),
3367
+ end: z.string().optional()
3368
+ }),
3369
+ queryFields: [
3370
+ "field",
3371
+ "statsPeriod",
3372
+ "interval",
3373
+ "groupBy",
3374
+ "project",
3375
+ "category",
3376
+ "outcome",
3377
+ "reason",
3378
+ "start",
3379
+ "end"
3380
+ ],
3381
+ output: sentryJsonObjectSchema,
3382
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgRead]
3383
+ };
3384
+ const retrieveOrganizationRelayUsageDefinition = {
3385
+ id: "sentry.retrieve-organization-relay-usage",
3386
+ name: "Retrieve Organization Relay Usage",
3387
+ description: "Return Relay (Sentry ingest proxy) usage metrics for the organization.",
3388
+ method: "GET",
3389
+ path: "/api/0/organizations/{organization_slug}/relay_usage/",
3390
+ pathParams: ORG_PATH_PARAMS,
3391
+ input: orgScopeInputSchema,
3392
+ output: sentryJsonObjectSchema,
3393
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgRead]
3394
+ };
3395
+ const retrieveOrganizationProjectsDefinition = {
3396
+ id: "sentry.retrieve-organization-projects",
3397
+ name: "Retrieve Organization Projects",
3398
+ description: "List projects in an organization with pagination.",
3399
+ method: "GET",
3400
+ path: "/api/0/organizations/{organization_slug}/projects/",
3401
+ pathParams: ORG_PATH_PARAMS,
3402
+ input: sentryListInputSchema.merge(orgScopeInputSchema),
3403
+ queryFields: [
3404
+ "query",
3405
+ "cursor",
3406
+ "per_page"
3407
+ ],
3408
+ output: z.array(sentryProjectSummarySchema),
3409
+ pagination: "cursor",
3410
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
3411
+ };
3412
+ const postSpikeProtectionForOrganizationDefinition = {
3413
+ id: "sentry.post-spike-protection-for-organization",
3414
+ name: "Enable / Disable Spike Protection",
3415
+ description: "Toggle spike-protection on or off at the organization level.",
3416
+ method: "POST",
3417
+ path: "/api/0/organizations/{organization_slug}/spike-protections/",
3418
+ pathParams: ORG_PATH_PARAMS,
3419
+ input: orgScopeInputSchema.extend({ projects: z.array(z.union([z.string(), z.number()])).min(1) }),
3420
+ bodyFields: ["projects"],
3421
+ output: sentryJsonObjectSchema,
3422
+ needsApproval: true,
3423
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectWrite]
3424
+ };
3425
+ const retrieveOrgIntegrationConfigDefinition = {
3426
+ id: "sentry.retrieve-org-integration-config",
3427
+ name: "Retrieve Organization Integration Config",
3428
+ description: "Fetch the configuration schema for the set of integrations the org can install.",
3429
+ method: "GET",
3430
+ path: "/api/0/organizations/{organization_slug}/config/integrations/",
3431
+ pathParams: ORG_PATH_PARAMS,
3432
+ input: orgScopeInputSchema.extend({ providerKey: z.string().optional() }),
3433
+ queryFields: ["providerKey"],
3434
+ output: sentryJsonObjectSchema,
3435
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgRead]
3436
+ };
3437
+ const retrieveOrganizationIntegrationsListDefinition = {
3438
+ id: "sentry.retrieve-organization-integrations-list",
3439
+ name: "List Installed Organization Integrations",
3440
+ description: "Return every provider integration installed on the organization.",
3441
+ method: "GET",
3442
+ path: "/api/0/organizations/{organization_slug}/integrations/",
3443
+ pathParams: ORG_PATH_PARAMS,
3444
+ input: orgScopeInputSchema.extend({
3445
+ providerKey: z.string().optional(),
3446
+ features: z.array(z.string()).optional(),
3447
+ includeConfig: z.boolean().optional()
3448
+ }),
3449
+ queryFields: [
3450
+ "providerKey",
3451
+ "features",
3452
+ "includeConfig"
3453
+ ],
3454
+ output: sentryJsonArraySchema,
3455
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgRead]
3456
+ };
3457
+ const getIntegrationDetailsByOrgDefinition = {
3458
+ id: "sentry.get-integration-details-by-org",
3459
+ name: "Get Organization Integration Details",
3460
+ description: "Fetch one installed integration record by its integration id.",
3461
+ method: "GET",
3462
+ path: "/api/0/organizations/{organization_slug}/integrations/{integration_id}/",
3463
+ pathParams: [...ORG_PATH_PARAMS, {
3464
+ name: "integration_id",
3465
+ placeholder: "{integration_id}"
3466
+ }],
3467
+ input: orgScopeInputSchema.extend({ integration_id: z.string().min(1) }),
3468
+ output: sentryJsonObjectSchema,
3469
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgRead]
3470
+ };
3471
+ const deleteOrganizationIntegrationDefinition = {
3472
+ id: "sentry.delete-organization-integration",
3473
+ name: "Delete Organization Integration",
3474
+ description: "Uninstall an integration installation from the organization.",
3475
+ method: "DELETE",
3476
+ path: "/api/0/organizations/{organization_slug}/integrations/{integration_id}/",
3477
+ pathParams: [...ORG_PATH_PARAMS, {
3478
+ name: "integration_id",
3479
+ placeholder: "{integration_id}"
3480
+ }],
3481
+ input: orgScopeInputSchema.extend({ integration_id: z.string().min(1) }),
3482
+ output: z.unknown(),
3483
+ needsApproval: true,
3484
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgAdmin]
3485
+ };
3486
+ const getSentryAppInstallationsForOrganizationDefinition = {
3487
+ id: "sentry.get-sentry-app-installations-for-organization",
3488
+ name: "List Sentry App Installations for Organization",
3489
+ description: "List all Sentry-app (integration platform) installations for the organization.",
3490
+ method: "GET",
3491
+ path: "/api/0/organizations/{organization_slug}/sentry-app-installations/",
3492
+ pathParams: ORG_PATH_PARAMS,
3493
+ input: orgScopeInputSchema,
3494
+ output: sentryJsonArraySchema,
3495
+ requiredOAuthScopes: [...SENTRY_SCOPE.orgRead]
3496
+ };
3497
+
3498
+ //#endregion
3499
+ //#region src/operations/delete-organization-integration.operation.ts
3500
+ const deleteOrganizationIntegrationOperation = defineSentryEndpoint(deleteOrganizationIntegrationDefinition, sentryCredentialSet);
3501
+
3502
+ //#endregion
3503
+ //#region src/operations/delete-organization-issue.operation.ts
3504
+ const deleteOrganizationIssueOperation = defineSentryEndpoint(deleteOrganizationIssueDefinition, sentryCredentialSet);
3505
+
3506
+ //#endregion
3507
+ //#region src/operations/delete-organization-member.operation.ts
3508
+ const deleteOrganizationMemberOperation = defineSentryEndpoint(deleteOrganizationMemberDefinition, sentryCredentialSet);
3509
+
3510
+ //#endregion
3511
+ //#region src/operations/delete-organization-monitor.operation.ts
3512
+ const deleteOrganizationMonitorOperation = defineSentryEndpoint(deleteOrganizationMonitorDefinition, sentryCredentialSet);
3513
+
3514
+ //#endregion
3515
+ //#region src/operations/delete-organization-release.operation.ts
3516
+ const deleteOrganizationReleaseOperation = defineSentryEndpoint(deleteOrganizationReleaseDefinition, sentryCredentialSet);
3517
+
3518
+ //#endregion
3519
+ //#region src/operations/delete-project-by-id.operation.ts
3520
+ const deleteProjectByIdOperation = defineSentryEndpoint(deleteProjectByIdDefinition, sentryCredentialSet);
3521
+
3522
+ //#endregion
3523
+ //#region src/operations/delete-project-hook.operation.ts
3524
+ const deleteProjectHookOperation = defineSentryEndpoint(deleteProjectHookDefinition, sentryCredentialSet);
3525
+
3526
+ //#endregion
3527
+ //#region src/operations/delete-project-issues.operation.ts
3528
+ const deleteProjectIssuesOperation = defineSentryEndpoint(deleteProjectIssuesDefinition, sentryCredentialSet);
3529
+
3530
+ //#endregion
3531
+ //#region src/operations/delete-project-key.operation.ts
3532
+ const deleteProjectKeyOperation = defineSentryEndpoint(deleteProjectKeyDefinition, sentryCredentialSet);
3533
+
3534
+ //#endregion
3535
+ //#region src/operations/delete-project-monitor.operation.ts
3536
+ const deleteProjectMonitorOperation = defineSentryEndpoint(deleteProjectMonitorDefinition, sentryCredentialSet);
3537
+
3538
+ //#endregion
3539
+ //#region src/utils/replays-endpoints.ts
3540
+ /**
3541
+ * Sentry Session Replay operations. Maps to PLAN.md §6.17 (9 actions).
3542
+ */
3543
+ const ORG$1 = [{
3544
+ name: "organization_slug",
3545
+ placeholder: "{organization_slug}"
3546
+ }];
3547
+ const ORG_REPLAY = [...ORG$1, {
3548
+ name: "replay_id",
3549
+ placeholder: "{replay_id}"
3550
+ }];
3551
+ const ORG_PROJECT_REPLAY = [...[...ORG$1, {
3552
+ name: "project_slug",
3553
+ placeholder: "{project_slug}"
3554
+ }], {
3555
+ name: "replay_id",
3556
+ placeholder: "{replay_id}"
3557
+ }];
3558
+ const ORG_PROJECT_REPLAY_SEGMENT = [...ORG_PROJECT_REPLAY, {
3559
+ name: "segment_id",
3560
+ placeholder: "{segment_id}"
3561
+ }];
3562
+ const fetchOrganizationReplayCountDefinition = {
3563
+ id: "sentry.fetch-organization-replay-count",
3564
+ name: "Fetch Replay Count",
3565
+ description: "Return total replay counts for an organization query.",
3566
+ method: "GET",
3567
+ path: "/api/0/organizations/{organization_slug}/replay-count/",
3568
+ pathParams: ORG$1,
3569
+ input: orgScopeInputSchema.extend({
3570
+ project: z.array(z.number().int()).optional(),
3571
+ environment: z.array(z.string()).optional(),
3572
+ statsPeriod: z.string().optional(),
3573
+ query: z.string().optional()
3574
+ }),
3575
+ queryFields: [
3576
+ "project",
3577
+ "environment",
3578
+ "statsPeriod",
3579
+ "query"
3580
+ ],
3581
+ output: sentryJsonObjectSchema,
3582
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
3583
+ };
3584
+ const fetchOrganizationReplayDetailsDefinition = {
3585
+ id: "sentry.fetch-organization-replay-details",
3586
+ name: "Fetch Replay Details",
3587
+ description: "Fetch a single replay’s details by replay id.",
3588
+ method: "GET",
3589
+ path: "/api/0/organizations/{organization_slug}/replays/{replay_id}/",
3590
+ pathParams: ORG_REPLAY,
3591
+ input: orgScopeInputSchema.extend({ replay_id: sentryIdSchema }),
3592
+ output: sentryReplaySchema,
3593
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
3594
+ };
3595
+ const fetchOrganizationReplaySelectorsDefinition = {
3596
+ id: "sentry.fetch-organization-replay-selectors",
3597
+ name: "Fetch Replay Selectors",
3598
+ description: "List the dead-click / rage-click selectors observed in replays.",
3599
+ method: "GET",
3600
+ path: "/api/0/organizations/{organization_slug}/replay-selectors/",
3601
+ pathParams: ORG$1,
3602
+ input: sentryListInputSchema.merge(orgScopeInputSchema).extend({
3603
+ project: z.array(z.number().int()).optional(),
3604
+ environment: z.array(z.string()).optional(),
3605
+ statsPeriod: z.string().optional(),
3606
+ query: z.string().optional()
3607
+ }),
3608
+ queryFields: [
3609
+ "cursor",
3610
+ "per_page",
3611
+ "project",
3612
+ "environment",
3613
+ "statsPeriod",
3614
+ "query"
3615
+ ],
3616
+ output: sentryJsonArraySchema,
3617
+ pagination: "cursor",
3618
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
3619
+ };
3620
+ const retrieveOrganizationReplaysDefinition = {
3621
+ id: "sentry.retrieve-organization-replays",
3622
+ name: "List Organization Replays",
3623
+ description: "List replays for an organization.",
3624
+ method: "GET",
3625
+ path: "/api/0/organizations/{organization_slug}/replays/",
3626
+ pathParams: ORG$1,
3627
+ input: sentryListInputSchema.merge(orgScopeInputSchema).extend({
3628
+ project: z.array(z.number().int()).optional(),
3629
+ environment: z.array(z.string()).optional(),
3630
+ statsPeriod: z.string().optional(),
3631
+ query: z.string().optional()
3632
+ }),
3633
+ queryFields: [
3634
+ "cursor",
3635
+ "per_page",
3636
+ "project",
3637
+ "environment",
3638
+ "statsPeriod",
3639
+ "query"
3640
+ ],
3641
+ output: z.array(sentryReplaySchema),
3642
+ pagination: "cursor",
3643
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
3644
+ };
3645
+ const fetchProjectReplayClicksDefinition = {
3646
+ id: "sentry.fetch-project-replay-clicks",
3647
+ name: "Fetch Replay Clicks",
3648
+ description: "Fetch the clickstream for a replay.",
3649
+ method: "GET",
3650
+ path: "/api/0/projects/{organization_slug}/{project_slug}/replays/{replay_id}/clicks/",
3651
+ pathParams: ORG_PROJECT_REPLAY,
3652
+ input: sentryListInputSchema.merge(orgProjectScopeInputSchema).extend({ replay_id: sentryIdSchema }),
3653
+ queryFields: [
3654
+ "cursor",
3655
+ "per_page",
3656
+ "query"
3657
+ ],
3658
+ output: sentryJsonArraySchema,
3659
+ pagination: "cursor",
3660
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
3661
+ };
3662
+ const fetchReplayRecordingSegmentDefinition = {
3663
+ id: "sentry.fetch-replay-recording-segment",
3664
+ name: "Fetch Replay Segment",
3665
+ description: "Fetch a specific rrweb segment for a replay.",
3666
+ method: "GET",
3667
+ path: "/api/0/projects/{organization_slug}/{project_slug}/replays/{replay_id}/recording-segments/{segment_id}/",
3668
+ pathParams: ORG_PROJECT_REPLAY_SEGMENT,
3669
+ input: orgProjectScopeInputSchema.extend({
3670
+ replay_id: sentryIdSchema,
3671
+ segment_id: sentryIdSchema
3672
+ }),
3673
+ output: sentryJsonObjectSchema,
3674
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
3675
+ };
3676
+ const retrieveReplayRecordingSegmentsDefinition = {
3677
+ id: "sentry.retrieve-replay-recording-segments",
3678
+ name: "List Replay Segments",
3679
+ description: "List the rrweb segments for a replay.",
3680
+ method: "GET",
3681
+ path: "/api/0/projects/{organization_slug}/{project_slug}/replays/{replay_id}/recording-segments/",
3682
+ pathParams: ORG_PROJECT_REPLAY,
3683
+ input: sentryListInputSchema.merge(orgProjectScopeInputSchema).extend({ replay_id: sentryIdSchema }),
3684
+ queryFields: ["cursor", "per_page"],
3685
+ output: sentryJsonArraySchema,
3686
+ pagination: "cursor",
3687
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
3688
+ };
3689
+ const getWhoViewedReplayByProjectDefinition = {
3690
+ id: "sentry.get-who-viewed-replay-by-project",
3691
+ name: "Get Replay Viewers",
3692
+ description: "List users who viewed a replay.",
3693
+ method: "GET",
3694
+ path: "/api/0/projects/{organization_slug}/{project_slug}/replays/{replay_id}/viewed-by/",
3695
+ pathParams: ORG_PROJECT_REPLAY,
3696
+ input: orgProjectScopeInputSchema.extend({ replay_id: sentryIdSchema }),
3697
+ output: sentryJsonArraySchema,
3698
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
3699
+ };
3700
+ const deleteProjectReplayDefinition = {
3701
+ id: "sentry.delete-project-replay",
3702
+ name: "Delete Project Replay",
3703
+ description: "Delete a replay by id.",
3704
+ method: "DELETE",
3705
+ path: "/api/0/projects/{organization_slug}/{project_slug}/replays/{replay_id}/",
3706
+ pathParams: ORG_PROJECT_REPLAY,
3707
+ input: orgProjectScopeInputSchema.extend({ replay_id: sentryIdSchema }),
3708
+ output: z.unknown(),
3709
+ needsApproval: true,
3710
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventAdmin]
3711
+ };
3712
+
3713
+ //#endregion
3714
+ //#region src/operations/delete-project-replay.operation.ts
3715
+ const deleteProjectReplayOperation = defineSentryEndpoint(deleteProjectReplayDefinition, sentryCredentialSet);
3716
+
3717
+ //#endregion
3718
+ //#region src/operations/delete-project-rule.operation.ts
3719
+ const deleteProjectRuleOperation = defineSentryEndpoint(deleteProjectRuleDefinition, sentryCredentialSet);
3720
+
3721
+ //#endregion
3722
+ //#region src/operations/delete-project-symbol-sources.operation.ts
3723
+ const deleteProjectSymbolSourcesOperation = defineSentryEndpoint(deleteProjectSymbolSourcesDefinition, sentryCredentialSet);
3724
+
3725
+ //#endregion
3726
+ //#region src/operations/delete-project-team-association.operation.ts
3727
+ const deleteProjectTeamAssociationOperation = defineSentryEndpoint(deleteProjectTeamAssociationDefinition, sentryCredentialSet);
3728
+
3729
+ //#endregion
3730
+ //#region src/operations/delete-release-file.operation.ts
3731
+ const deleteReleaseFileOperation = defineSentryEndpoint(deleteReleaseFileDefinition, sentryCredentialSet);
3732
+
3733
+ //#endregion
3734
+ //#region src/operations/delete-release-file-by-id.operation.ts
3735
+ const deleteReleaseFileByIdOperation = defineSentryEndpoint(deleteReleaseFileByIdDefinition, sentryCredentialSet);
3736
+
3737
+ //#endregion
3738
+ //#region src/operations/delete-team-by-organization-or-team-slug.operation.ts
3739
+ const deleteTeamByOrganizationOrTeamSlugOperation = defineSentryEndpoint(deleteTeamByOrganizationOrTeamSlugDefinition, sentryCredentialSet);
3740
+
3741
+ //#endregion
3742
+ //#region src/operations/delete-team-from-org-scim-v2.operation.ts
3743
+ const deleteTeamFromOrgScimV2Operation = defineSentryEndpoint(deleteTeamFromOrgScimV2Definition, sentryCredentialSet);
3744
+
3745
+ //#endregion
3746
+ //#region src/operations/delete-user-emails-by-id.operation.ts
3747
+ const deleteUserEmailsByIdOperation = defineSentryEndpoint(deleteUserEmailsByIdDefinition, sentryCredentialSet);
3748
+
3749
+ //#endregion
3750
+ //#region src/operations/delete-user-from-org.operation.ts
3751
+ const deleteUserFromOrgOperation = defineSentryEndpoint(deleteUserFromOrgDefinition, sentryCredentialSet);
3752
+
3753
+ //#endregion
3754
+ //#region src/utils/events-api-endpoints.ts
3755
+ /**
3756
+ * Sentry events + event-query operations. Maps to PLAN.md §6.7 (7 actions).
3757
+ */
3758
+ const ORG = [{
3759
+ name: "organization_slug",
3760
+ placeholder: "{organization_slug}"
3761
+ }];
3762
+ const ORG_PROJECT$2 = [...ORG, {
3763
+ name: "project_slug",
3764
+ placeholder: "{project_slug}"
3765
+ }];
3766
+ const ORG_ISSUE = [...ORG, {
3767
+ name: "issue_id",
3768
+ placeholder: "{issue_id}"
3769
+ }];
3770
+ const fetchIssueEventByIdDefinition = {
3771
+ id: "sentry.fetch-issue-event-by-id",
3772
+ name: "Fetch Issue Event",
3773
+ description: "Fetch a single event that belongs to an issue by event id.",
3774
+ method: "GET",
3775
+ path: "/api/0/organizations/{organization_slug}/issues/{issue_id}/events/{event_id}/",
3776
+ pathParams: [...ORG_ISSUE, {
3777
+ name: "event_id",
3778
+ placeholder: "{event_id}"
3779
+ }],
3780
+ input: orgIssueScopeInputSchema.extend({ event_id: sentryIdSchema }),
3781
+ output: sentryEventSchema,
3782
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
3783
+ };
3784
+ const retrieveProjectEventByIdDefinition = {
3785
+ id: "sentry.retrieve-project-event-by-id",
3786
+ name: "Retrieve Project Event",
3787
+ description: "Fetch a single event scoped to a project by event id.",
3788
+ method: "GET",
3789
+ path: "/api/0/projects/{organization_slug}/{project_slug}/events/{event_id}/",
3790
+ pathParams: [...ORG_PROJECT$2, {
3791
+ name: "event_id",
3792
+ placeholder: "{event_id}"
3793
+ }],
3794
+ input: orgProjectScopeInputSchema.extend({ event_id: sentryIdSchema }),
3795
+ output: sentryEventSchema,
3796
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
3797
+ };
3798
+ const getProjectEventsDefinition = {
3799
+ id: "sentry.get-project-events",
3800
+ name: "List Project Events",
3801
+ description: "List recent events in a project.",
3802
+ method: "GET",
3803
+ path: "/api/0/projects/{organization_slug}/{project_slug}/events/",
3804
+ pathParams: ORG_PROJECT$2,
3805
+ input: sentryListInputSchema.merge(orgProjectScopeInputSchema).extend({
3806
+ full: z.boolean().optional(),
3807
+ sample: z.boolean().optional()
3808
+ }),
3809
+ queryFields: [
3810
+ "cursor",
3811
+ "per_page",
3812
+ "query",
3813
+ "full",
3814
+ "sample"
3815
+ ],
3816
+ output: z.array(sentryEventSchema),
3817
+ pagination: "cursor",
3818
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
3819
+ };
3820
+ const getProjectEventStatsDefinition = {
3821
+ id: "sentry.get-project-event-stats",
3822
+ name: "Get Project Event Stats",
3823
+ description: "Return time-series event counts for a project.",
3824
+ method: "GET",
3825
+ path: "/api/0/projects/{organization_slug}/{project_slug}/stats/",
3826
+ pathParams: ORG_PROJECT$2,
3827
+ input: orgProjectScopeInputSchema.extend({
3828
+ stat: z.enum([
3829
+ "received",
3830
+ "rejected",
3831
+ "blacklisted",
3832
+ "generated"
3833
+ ]).optional(),
3834
+ since: z.string().optional(),
3835
+ until: z.string().optional(),
3836
+ resolution: z.string().optional()
3837
+ }),
3838
+ queryFields: [
3839
+ "stat",
3840
+ "since",
3841
+ "until",
3842
+ "resolution"
3843
+ ],
3844
+ output: sentryJsonArraySchema,
3845
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
3846
+ };
3847
+ const retrieveOrganizationEventsDefinition = {
3848
+ id: "sentry.retrieve-organization-events",
3849
+ name: "Retrieve Organization Events (Discover)",
3850
+ description: "Query the Discover event dataset across an organization with field, query, and aggregation support.",
3851
+ method: "GET",
3852
+ path: "/api/0/organizations/{organization_slug}/events/",
3853
+ pathParams: ORG,
3854
+ input: sentryListInputSchema.merge(orgScopeInputSchema).extend({
3855
+ field: z.array(z.string()).min(1),
3856
+ query: z.string().optional(),
3857
+ project: z.array(z.number().int()).optional(),
3858
+ environment: z.array(z.string()).optional(),
3859
+ statsPeriod: z.string().optional(),
3860
+ start: z.string().optional(),
3861
+ end: z.string().optional(),
3862
+ sort: z.string().optional(),
3863
+ dataset: z.enum([
3864
+ "discover",
3865
+ "errors",
3866
+ "transactions",
3867
+ "issuePlatform"
3868
+ ]).optional(),
3869
+ orderby: z.string().optional()
3870
+ }),
3871
+ queryFields: [
3872
+ "cursor",
3873
+ "per_page",
3874
+ "field",
3875
+ "query",
3876
+ "project",
3877
+ "environment",
3878
+ "statsPeriod",
3879
+ "start",
3880
+ "end",
3881
+ "sort",
3882
+ "dataset",
3883
+ "orderby"
3884
+ ],
3885
+ output: sentryJsonObjectSchema,
3886
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
3887
+ };
3888
+ const retrieveEventIdForOrganizationDefinition = {
3889
+ id: "sentry.retrieve-event-id-for-organization",
3890
+ name: "Retrieve Event By ID (Org)",
3891
+ description: "Look up a single event across an organization by its event id.",
3892
+ method: "GET",
3893
+ path: "/api/0/organizations/{organization_slug}/eventids/{event_id}/",
3894
+ pathParams: [...ORG, {
3895
+ name: "event_id",
3896
+ placeholder: "{event_id}"
3897
+ }],
3898
+ input: orgScopeInputSchema.extend({ event_id: sentryIdSchema }),
3899
+ output: sentryEventSchema,
3900
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
3901
+ };
3902
+ const retrieveSourceMapDebugEventDefinition = {
3903
+ id: "sentry.retrieve-source-map-debug-event",
3904
+ name: "Retrieve Source Map Debug Event",
3905
+ description: "Return source-map debug diagnostics for a single event.",
3906
+ method: "GET",
3907
+ path: "/api/0/projects/{organization_slug}/{project_slug}/events/{event_id}/source-map-debug/",
3908
+ pathParams: [...ORG_PROJECT$2, {
3909
+ name: "event_id",
3910
+ placeholder: "{event_id}"
3911
+ }],
3912
+ input: orgProjectScopeInputSchema.extend({
3913
+ event_id: sentryIdSchema,
3914
+ frame_idx: z.number().int().optional(),
3915
+ exception_idx: z.number().int().optional()
3916
+ }),
3917
+ queryFields: ["frame_idx", "exception_idx"],
3918
+ output: sentryJsonObjectSchema,
3919
+ requiredOAuthScopes: [...SENTRY_SCOPE.eventRead]
3920
+ };
3921
+
3922
+ //#endregion
3923
+ //#region src/operations/fetch-issue-event-by-id.operation.ts
3924
+ const fetchIssueEventByIdOperation = defineSentryEndpoint(fetchIssueEventByIdDefinition, sentryCredentialSet);
3925
+
3926
+ //#endregion
3927
+ //#region src/operations/fetch-organization-alert-rules.operation.ts
3928
+ const fetchOrganizationAlertRulesOperation = defineSentryEndpoint(fetchOrganizationAlertRulesDefinition, sentryCredentialSet);
3929
+
3930
+ //#endregion
3931
+ //#region src/operations/fetch-organization-release-threshold-statuses.operation.ts
3932
+ const fetchOrganizationReleaseThresholdStatusesOperation = defineSentryEndpoint(fetchOrganizationReleaseThresholdStatusesDefinition, sentryCredentialSet);
3933
+
3934
+ //#endregion
3935
+ //#region src/operations/fetch-organization-replay-count.operation.ts
3936
+ const fetchOrganizationReplayCountOperation = defineSentryEndpoint(fetchOrganizationReplayCountDefinition, sentryCredentialSet);
3937
+
3938
+ //#endregion
3939
+ //#region src/operations/fetch-organization-replay-details.operation.ts
3940
+ const fetchOrganizationReplayDetailsOperation = defineSentryEndpoint(fetchOrganizationReplayDetailsDefinition, sentryCredentialSet);
3941
+
3942
+ //#endregion
3943
+ //#region src/operations/fetch-organization-replay-selectors.operation.ts
3944
+ const fetchOrganizationReplaySelectorsOperation = defineSentryEndpoint(fetchOrganizationReplaySelectorsDefinition, sentryCredentialSet);
3945
+
3946
+ //#endregion
3947
+ //#region src/utils/environments-endpoints.ts
3948
+ /**
3949
+ * Sentry environment operations. Maps to PLAN.md §6.10 (3 actions).
3950
+ */
3951
+ const ORG_PROJECT$1 = [{
3952
+ name: "organization_slug",
3953
+ placeholder: "{organization_slug}"
3954
+ }, {
3955
+ name: "project_slug",
3956
+ placeholder: "{project_slug}"
3957
+ }];
3958
+ const ORG_PROJECT_ENV = [...ORG_PROJECT$1, {
3959
+ name: "environment",
3960
+ placeholder: "{environment}"
3961
+ }];
3962
+ const retrieveProjectEnvironmentsDefinition = {
3963
+ id: "sentry.retrieve-project-environments",
3964
+ name: "Retrieve Project Environments",
3965
+ description: "List the environments associated with a project.",
3966
+ method: "GET",
3967
+ path: "/api/0/projects/{organization_slug}/{project_slug}/environments/",
3968
+ pathParams: ORG_PROJECT$1,
3969
+ input: orgProjectScopeInputSchema.extend({ visibility: z.enum([
3970
+ "visible",
3971
+ "hidden",
3972
+ "all"
3973
+ ]).optional() }),
3974
+ queryFields: ["visibility"],
3975
+ output: z.array(sentryEnvironmentSchema),
3976
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
3977
+ };
3978
+ const fetchProjectEnvironmentDetailsDefinition = {
3979
+ id: "sentry.fetch-project-environment-details",
3980
+ name: "Fetch Project Environment Details",
3981
+ description: "Fetch details for one project environment by name.",
3982
+ method: "GET",
3983
+ path: "/api/0/projects/{organization_slug}/{project_slug}/environments/{environment}/",
3984
+ pathParams: ORG_PROJECT_ENV,
3985
+ input: orgProjectScopeInputSchema.extend({ environment: z.string().min(1) }),
3986
+ output: sentryEnvironmentSchema,
3987
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
3988
+ };
3989
+ const updateEnvironmentVisibilityDefinition = {
3990
+ id: "sentry.update-environment-visibility",
3991
+ name: "Update Environment Visibility",
3992
+ description: "Toggle the `isHidden` flag for a project environment.",
3993
+ method: "PUT",
3994
+ path: "/api/0/projects/{organization_slug}/{project_slug}/environments/{environment}/",
3995
+ pathParams: ORG_PROJECT_ENV,
3996
+ input: orgProjectScopeInputSchema.extend({
3997
+ environment: z.string().min(1),
3998
+ isHidden: z.boolean()
3999
+ }),
4000
+ bodyFields: ["isHidden"],
4001
+ output: sentryEnvironmentSchema,
4002
+ needsApproval: true,
4003
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectWrite]
4004
+ };
4005
+
4006
+ //#endregion
4007
+ //#region src/operations/fetch-project-environment-details.operation.ts
4008
+ const fetchProjectEnvironmentDetailsOperation = defineSentryEndpoint(fetchProjectEnvironmentDetailsDefinition, sentryCredentialSet);
4009
+
4010
+ //#endregion
4011
+ //#region src/operations/fetch-project-ownership-details.operation.ts
4012
+ const fetchProjectOwnershipDetailsOperation = defineSentryEndpoint(fetchProjectOwnershipDetailsDefinition, sentryCredentialSet);
4013
+
4014
+ //#endregion
4015
+ //#region src/operations/fetch-project-release-files.operation.ts
4016
+ const fetchProjectReleaseFilesOperation = defineSentryEndpoint(fetchProjectReleaseFilesDefinition, sentryCredentialSet);
4017
+
4018
+ //#endregion
4019
+ //#region src/operations/fetch-project-replay-clicks.operation.ts
4020
+ const fetchProjectReplayClicksOperation = defineSentryEndpoint(fetchProjectReplayClicksDefinition, sentryCredentialSet);
4021
+
4022
+ //#endregion
4023
+ //#region src/operations/fetch-replay-recording-segment.operation.ts
4024
+ const fetchReplayRecordingSegmentOperation = defineSentryEndpoint(fetchReplayRecordingSegmentDefinition, sentryCredentialSet);
4025
+
4026
+ //#endregion
4027
+ //#region src/operations/fetch-tag-values-for-issue.operation.ts
4028
+ const fetchTagValuesForIssueOperation = defineSentryEndpoint(fetchTagValuesForIssueDefinition, sentryCredentialSet);
4029
+
4030
+ //#endregion
4031
+ //#region src/operations/get-activation-of-alert-rule-for-organization.operation.ts
4032
+ const getActivationOfAlertRuleForOrganizationOperation = defineSentryEndpoint(getActivationOfAlertRuleForOrganizationDefinition, sentryCredentialSet);
4033
+
4034
+ //#endregion
4035
+ //#region src/operations/get-integration-details-by-org.operation.ts
4036
+ const getIntegrationDetailsByOrgOperation = defineSentryEndpoint(getIntegrationDetailsByOrgDefinition, sentryCredentialSet);
4037
+
4038
+ //#endregion
4039
+ //#region src/operations/get-organization-by-id-or-slug.operation.ts
4040
+ const getOrganizationByIdOrSlugOperation = defineSentryEndpoint(getOrganizationByIdOrSlugDefinition, sentryCredentialSet);
4041
+
4042
+ //#endregion
4043
+ //#region src/operations/get-organization-details.operation.ts
4044
+ const getOrganizationDetailsOperation = defineSentryEndpoint(getOrganizationDetailsDefinition, sentryCredentialSet);
4045
+
4046
+ //#endregion
4047
+ //#region src/operations/get-organization-environments.operation.ts
4048
+ const getOrganizationEnvironmentsOperation = defineSentryEndpoint(getOrganizationEnvironmentsDefinition, sentryCredentialSet);
4049
+
4050
+ //#endregion
4051
+ //#region src/operations/get-organization-issue-details.operation.ts
4052
+ const getOrganizationIssueDetailsOperation = defineSentryEndpoint(getOrganizationIssueDetailsDefinition, sentryCredentialSet);
4053
+
4054
+ //#endregion
4055
+ //#region src/operations/get-organization-monitor-by-id-or-slug.operation.ts
4056
+ const getOrganizationMonitorByIdOrSlugOperation = defineSentryEndpoint(getOrganizationMonitorByIdOrSlugDefinition, sentryCredentialSet);
4057
+
4058
+ //#endregion
4059
+ //#region src/operations/get-organization-release-version.operation.ts
4060
+ const getOrganizationReleaseVersionOperation = defineSentryEndpoint(getOrganizationReleaseVersionDefinition, sentryCredentialSet);
4061
+
4062
+ //#endregion
4063
+ //#region src/operations/get-organization-sessions.operation.ts
4064
+ const getOrganizationSessionsOperation = defineSentryEndpoint(getOrganizationSessionsDefinition, sentryCredentialSet);
4065
+
4066
+ //#endregion
4067
+ //#region src/operations/get-organization-stats-summary.operation.ts
4068
+ const getOrganizationStatsSummaryOperation = defineSentryEndpoint(getOrganizationStatsSummaryDefinition, sentryCredentialSet);
4069
+
4070
+ //#endregion
4071
+ //#region src/operations/get-project-event-stats.operation.ts
4072
+ const getProjectEventStatsOperation = defineSentryEndpoint(getProjectEventStatsDefinition, sentryCredentialSet);
4073
+
4074
+ //#endregion
4075
+ //#region src/operations/get-project-events.operation.ts
4076
+ const getProjectEventsOperation = defineSentryEndpoint(getProjectEventsDefinition, sentryCredentialSet);
4077
+
4078
+ //#endregion
4079
+ //#region src/operations/get-project-hook.operation.ts
4080
+ const getProjectHookOperation = defineSentryEndpoint(getProjectHookDefinition, sentryCredentialSet);
4081
+
4082
+ //#endregion
4083
+ //#region src/operations/get-project-list.operation.ts
4084
+ const getProjectListOperation = defineSentryEndpoint(getProjectListDefinition, sentryCredentialSet);
4085
+
4086
+ //#endregion
4087
+ //#region src/operations/get-project-monitor-by-id.operation.ts
4088
+ const getProjectMonitorByIdOperation = defineSentryEndpoint(getProjectMonitorByIdDefinition, sentryCredentialSet);
4089
+
4090
+ //#endregion
4091
+ //#region src/operations/get-project-rule-details.operation.ts
4092
+ const getProjectRuleDetailsOperation = defineSentryEndpoint(getProjectRuleDetailsDefinition, sentryCredentialSet);
4093
+
4094
+ //#endregion
4095
+ //#region src/operations/get-scim-group-by-team-id.operation.ts
4096
+ const getScimGroupByTeamIdOperation = defineSentryEndpoint(getScimGroupByTeamIdDefinition, sentryCredentialSet);
4097
+
4098
+ //#endregion
4099
+ //#region src/operations/get-sentry-app-installations-for-organization.operation.ts
4100
+ const getSentryAppInstallationsForOrganizationOperation = defineSentryEndpoint(getSentryAppInstallationsForOrganizationDefinition, sentryCredentialSet);
4101
+
4102
+ //#endregion
4103
+ //#region src/operations/get-team-members-by-id-or-slug.operation.ts
4104
+ const getTeamMembersByIdOrSlugOperation = defineSentryEndpoint(getTeamMembersByIdOrSlugDefinition, sentryCredentialSet);
4105
+
4106
+ //#endregion
4107
+ //#region src/operations/get-who-viewed-replay-by-project.operation.ts
4108
+ const getWhoViewedReplayByProjectOperation = defineSentryEndpoint(getWhoViewedReplayByProjectDefinition, sentryCredentialSet);
4109
+
4110
+ //#endregion
4111
+ //#region src/operations/list-organization-dashboards.operation.ts
4112
+ const listOrganizationDashboardsOperation = defineSentryEndpoint(listOrganizationDashboardsDefinition, sentryCredentialSet);
4113
+
4114
+ //#endregion
4115
+ //#region src/operations/list-organization-members.operation.ts
4116
+ const listOrganizationMembersOperation = defineSentryEndpoint(listOrganizationMembersDefinition, sentryCredentialSet);
4117
+
4118
+ //#endregion
4119
+ //#region src/operations/list-organization-releases.operation.ts
4120
+ const listOrganizationReleasesOperation = defineSentryEndpoint(listOrganizationReleasesDefinition, sentryCredentialSet);
4121
+
4122
+ //#endregion
4123
+ //#region src/operations/list-organization-repositories.operation.ts
4124
+ const listOrganizationRepositoriesOperation = defineSentryEndpoint(listOrganizationRepositoriesDefinition, sentryCredentialSet);
4125
+
4126
+ //#endregion
4127
+ //#region src/operations/list-organization-user-teams.operation.ts
4128
+ const listOrganizationUserTeamsOperation = defineSentryEndpoint(listOrganizationUserTeamsDefinition, sentryCredentialSet);
4129
+
4130
+ //#endregion
4131
+ //#region src/operations/list-project-users.operation.ts
4132
+ const listProjectUsersOperation = defineSentryEndpoint(listProjectUsersDefinition, sentryCredentialSet);
4133
+
4134
+ //#endregion
4135
+ //#region src/operations/list-scim-v2-organization-users.operation.ts
4136
+ const listScimV2OrganizationUsersOperation = defineSentryEndpoint(listScimV2OrganizationUsersDefinition, sentryCredentialSet);
4137
+
4138
+ //#endregion
4139
+ //#region src/operations/list-teams-in-organization.operation.ts
4140
+ const listTeamsInOrganizationOperation = defineSentryEndpoint(listTeamsInOrganizationDefinition, sentryCredentialSet);
4141
+
4142
+ //#endregion
4143
+ //#region src/operations/manage-team-external-integrations.operation.ts
4144
+ const manageTeamExternalIntegrationsOperation = defineSentryEndpoint(manageTeamExternalIntegrationsDefinition, sentryCredentialSet);
4145
+
4146
+ //#endregion
4147
+ //#region src/operations/modify-organization-monitor-data.operation.ts
4148
+ const modifyOrganizationMonitorDataOperation = defineSentryEndpoint(modifyOrganizationMonitorDataDefinition, sentryCredentialSet);
4149
+
4150
+ //#endregion
4151
+ //#region src/operations/modify-organization-notification-action.operation.ts
4152
+ const modifyOrganizationNotificationActionOperation = defineSentryEndpoint(modifyOrganizationNotificationActionDefinition, sentryCredentialSet);
4153
+
4154
+ //#endregion
4155
+ //#region src/operations/modify-organization-settings.operation.ts
4156
+ const modifyOrganizationSettingsOperation = defineSentryEndpoint(modifyOrganizationSettingsDefinition, sentryCredentialSet);
4157
+
4158
+ //#endregion
4159
+ //#region src/operations/modify-release-file-attributes.operation.ts
4160
+ const modifyReleaseFileAttributesOperation = defineSentryEndpoint(modifyReleaseFileAttributesDefinition, sentryCredentialSet);
4161
+
4162
+ //#endregion
4163
+ //#region src/operations/patch-scim-group-operations.operation.ts
4164
+ const patchScimGroupOperationsOperation = defineSentryEndpoint(patchScimGroupOperationsDefinition, sentryCredentialSet);
4165
+
4166
+ //#endregion
4167
+ //#region src/operations/patch-user-active-status-in-organization.operation.ts
4168
+ const patchUserActiveStatusInOrganizationOperation = defineSentryEndpoint(patchUserActiveStatusInOrganizationDefinition, sentryCredentialSet);
4169
+
4170
+ //#endregion
4171
+ //#region src/operations/post-project-symbol-sources.operation.ts
4172
+ const postProjectSymbolSourcesOperation = defineSentryEndpoint(postProjectSymbolSourcesDefinition, sentryCredentialSet);
4173
+
4174
+ //#endregion
4175
+ //#region src/operations/post-spike-protection-for-organization.operation.ts
4176
+ const postSpikeProtectionForOrganizationOperation = defineSentryEndpoint(postSpikeProtectionForOrganizationDefinition, sentryCredentialSet);
4177
+
4178
+ //#endregion
4179
+ //#region src/operations/retrieve-alert-rule-details.operation.ts
4180
+ const retrieveAlertRuleDetailsOperation = defineSentryEndpoint(retrieveAlertRuleDetailsDefinition, sentryCredentialSet);
4181
+
4182
+ //#endregion
4183
+ //#region src/operations/retrieve-commit-files-for-release.operation.ts
4184
+ const retrieveCommitFilesForReleaseOperation = defineSentryEndpoint(retrieveCommitFilesForReleaseDefinition, sentryCredentialSet);
4185
+
4186
+ //#endregion
4187
+ //#region src/operations/retrieve-commits-for-organization-repo.operation.ts
4188
+ const retrieveCommitsForOrganizationRepoOperation = defineSentryEndpoint(retrieveCommitsForOrganizationRepoDefinition, sentryCredentialSet);
4189
+
4190
+ //#endregion
4191
+ //#region src/operations/retrieve-dsym-files-for-project.operation.ts
4192
+ const retrieveDsymFilesForProjectOperation = defineSentryEndpoint(retrieveDsymFilesForProjectDefinition, sentryCredentialSet);
4193
+
4194
+ //#endregion
4195
+ //#region src/operations/retrieve-event-id-for-organization.operation.ts
4196
+ const retrieveEventIdForOrganizationOperation = defineSentryEndpoint(retrieveEventIdForOrganizationDefinition, sentryCredentialSet);
4197
+
4198
+ //#endregion
4199
+ //#region src/operations/retrieve-files-for-release.operation.ts
4200
+ const retrieveFilesForReleaseOperation = defineSentryEndpoint(retrieveFilesForReleaseDefinition, sentryCredentialSet);
4201
+
4202
+ //#endregion
4203
+ //#region src/operations/retrieve-issue-events-by-id.operation.ts
4204
+ const retrieveIssueEventsByIdOperation = defineSentryEndpoint(retrieveIssueEventsByIdDefinition, sentryCredentialSet);
4205
+
4206
+ //#endregion
4207
+ //#region src/operations/retrieve-issue-hashes-for-organization.operation.ts
4208
+ const retrieveIssueHashesForOrganizationOperation = defineSentryEndpoint(retrieveIssueHashesForOrganizationDefinition, sentryCredentialSet);
4209
+
4210
+ //#endregion
4211
+ //#region src/operations/retrieve-issue-tag-details.operation.ts
4212
+ const retrieveIssueTagDetailsOperation = defineSentryEndpoint(retrieveIssueTagDetailsDefinition, sentryCredentialSet);
4213
+
4214
+ //#endregion
4215
+ //#region src/operations/retrieve-monitor-checkins.operation.ts
4216
+ const retrieveMonitorCheckinsOperation = defineSentryEndpoint(retrieveMonitorCheckinsDefinition, sentryCredentialSet);
4217
+
4218
+ //#endregion
4219
+ //#region src/operations/retrieve-monitor-checkins-by-org.operation.ts
4220
+ const retrieveMonitorCheckinsByOrgOperation = defineSentryEndpoint(retrieveMonitorCheckinsByOrgDefinition, sentryCredentialSet);
4221
+
4222
+ //#endregion
4223
+ //#region src/operations/retrieve-notification-action-by-org-id.operation.ts
4224
+ const retrieveNotificationActionByOrgIdOperation = defineSentryEndpoint(retrieveNotificationActionByOrgIdDefinition, sentryCredentialSet);
4225
+
4226
+ //#endregion
4227
+ //#region src/operations/retrieve-org-integration-config.operation.ts
4228
+ const retrieveOrgIntegrationConfigOperation = defineSentryEndpoint(retrieveOrgIntegrationConfigDefinition, sentryCredentialSet);
4229
+
4230
+ //#endregion
4231
+ //#region src/operations/retrieve-organization-dashboard.operation.ts
4232
+ const retrieveOrganizationDashboardOperation = defineSentryEndpoint(retrieveOrganizationDashboardDefinition, sentryCredentialSet);
4233
+
4234
+ //#endregion
4235
+ //#region src/operations/retrieve-organization-events.operation.ts
4236
+ const retrieveOrganizationEventsOperation = defineSentryEndpoint(retrieveOrganizationEventsDefinition, sentryCredentialSet);
4237
+
4238
+ //#endregion
4239
+ //#region src/operations/retrieve-organization-integrations-list.operation.ts
4240
+ const retrieveOrganizationIntegrationsListOperation = defineSentryEndpoint(retrieveOrganizationIntegrationsListDefinition, sentryCredentialSet);
4241
+
4242
+ //#endregion
4243
+ //#region src/operations/retrieve-organization-member.operation.ts
4244
+ const retrieveOrganizationMemberOperation = defineSentryEndpoint(retrieveOrganizationMemberDefinition, sentryCredentialSet);
4245
+
4246
+ //#endregion
4247
+ //#region src/operations/retrieve-organization-monitors.operation.ts
4248
+ const retrieveOrganizationMonitorsOperation = defineSentryEndpoint(retrieveOrganizationMonitorsDefinition, sentryCredentialSet);
4249
+
4250
+ //#endregion
4251
+ //#region src/operations/retrieve-organization-projects.operation.ts
4252
+ const retrieveOrganizationProjectsOperation = defineSentryEndpoint(retrieveOrganizationProjectsDefinition, sentryCredentialSet);
4253
+
4254
+ //#endregion
4255
+ //#region src/operations/retrieve-organization-relay-usage.operation.ts
4256
+ const retrieveOrganizationRelayUsageOperation = defineSentryEndpoint(retrieveOrganizationRelayUsageDefinition, sentryCredentialSet);
4257
+
4258
+ //#endregion
4259
+ //#region src/operations/retrieve-organization-release-commits.operation.ts
4260
+ const retrieveOrganizationReleaseCommitsOperation = defineSentryEndpoint(retrieveOrganizationReleaseCommitsDefinition, sentryCredentialSet);
4261
+
4262
+ //#endregion
4263
+ //#region src/operations/retrieve-organization-replays.operation.ts
4264
+ const retrieveOrganizationReplaysOperation = defineSentryEndpoint(retrieveOrganizationReplaysDefinition, sentryCredentialSet);
4265
+
4266
+ //#endregion
4267
+ //#region src/operations/retrieve-organization-scim-groups.operation.ts
4268
+ const retrieveOrganizationScimGroupsOperation = defineSentryEndpoint(retrieveOrganizationScimGroupsDefinition, sentryCredentialSet);
4269
+
4270
+ //#endregion
4271
+ //#region src/operations/retrieve-organization-stats-v2.operation.ts
4272
+ const retrieveOrganizationStatsV2Operation = defineSentryEndpoint(retrieveOrganizationStatsV2Definition, sentryCredentialSet);
4273
+
4274
+ //#endregion
4275
+ //#region src/operations/retrieve-project-environments.operation.ts
4276
+ const retrieveProjectEnvironmentsOperation = defineSentryEndpoint(retrieveProjectEnvironmentsDefinition, sentryCredentialSet);
4277
+
4278
+ //#endregion
4279
+ //#region src/operations/retrieve-project-event-by-id.operation.ts
4280
+ const retrieveProjectEventByIdOperation = defineSentryEndpoint(retrieveProjectEventByIdDefinition, sentryCredentialSet);
4281
+
4282
+ //#endregion
4283
+ //#region src/operations/retrieve-project-filter-data.operation.ts
4284
+ const retrieveProjectFilterDataOperation = defineSentryEndpoint(retrieveProjectFilterDataDefinition, sentryCredentialSet);
4285
+
4286
+ //#endregion
4287
+ //#region src/operations/retrieve-project-hooks.operation.ts
4288
+ const retrieveProjectHooksOperation = defineSentryEndpoint(retrieveProjectHooksDefinition, sentryCredentialSet);
4289
+
4290
+ //#endregion
4291
+ //#region src/operations/retrieve-project-issues-list.operation.ts
4292
+ const retrieveProjectIssuesListOperation = defineSentryEndpoint(retrieveProjectIssuesListDefinition, sentryCredentialSet);
4293
+
4294
+ //#endregion
4295
+ //#region src/operations/retrieve-project-key-details.operation.ts
4296
+ const retrieveProjectKeyDetailsOperation = defineSentryEndpoint(retrieveProjectKeyDetailsDefinition, sentryCredentialSet);
4297
+
4298
+ //#endregion
4299
+ //#region src/operations/retrieve-project-keys-by-org-and-project.operation.ts
4300
+ const retrieveProjectKeysByOrgAndProjectOperation = defineSentryEndpoint(retrieveProjectKeysByOrgAndProjectDefinition, sentryCredentialSet);
4301
+
4302
+ //#endregion
4303
+ //#region src/operations/retrieve-project-members-list.operation.ts
4304
+ const retrieveProjectMembersListOperation = defineSentryEndpoint(retrieveProjectMembersListDefinition, sentryCredentialSet);
4305
+
4306
+ //#endregion
4307
+ //#region src/operations/retrieve-project-release-file-details.operation.ts
4308
+ const retrieveProjectReleaseFileDetailsOperation = defineSentryEndpoint(retrieveProjectReleaseFileDetailsDefinition, sentryCredentialSet);
4309
+
4310
+ //#endregion
4311
+ //#region src/operations/retrieve-project-rules-by-org-and-project-id.operation.ts
4312
+ const retrieveProjectRulesByOrgAndProjectIdOperation = defineSentryEndpoint(retrieveProjectRulesByOrgAndProjectIdDefinition, sentryCredentialSet);
4313
+
4314
+ //#endregion
4315
+ //#region src/operations/retrieve-project-symbol-sources.operation.ts
4316
+ const retrieveProjectSymbolSourcesOperation = defineSentryEndpoint(retrieveProjectSymbolSourcesDefinition, sentryCredentialSet);
4317
+
4318
+ //#endregion
4319
+ //#region src/operations/retrieve-project-tag-values.operation.ts
4320
+ const retrieveProjectTagValuesOperation = defineSentryEndpoint(retrieveProjectTagValuesDefinition, sentryCredentialSet);
4321
+
4322
+ //#endregion
4323
+ //#region src/operations/retrieve-project-teams.operation.ts
4324
+ const retrieveProjectTeamsOperation = defineSentryEndpoint(retrieveProjectTeamsDefinition, sentryCredentialSet);
4325
+
4326
+ //#endregion
4327
+ //#region src/operations/retrieve-release-commits.operation.ts
4328
+ const retrieveReleaseCommitsOperation = defineSentryEndpoint(retrieveReleaseCommitsDefinition, sentryCredentialSet);
4329
+
4330
+ //#endregion
4331
+ //#region src/operations/retrieve-release-deployments.operation.ts
4332
+ const retrieveReleaseDeploymentsOperation = defineSentryEndpoint(retrieveReleaseDeploymentsDefinition, sentryCredentialSet);
4333
+
4334
+ //#endregion
4335
+ //#region src/operations/retrieve-release-file-by-id.operation.ts
4336
+ const retrieveReleaseFileByIdOperation = defineSentryEndpoint(retrieveReleaseFileByIdDefinition, sentryCredentialSet);
4337
+
4338
+ //#endregion
4339
+ //#region src/operations/retrieve-replay-recording-segments.operation.ts
4340
+ const retrieveReplayRecordingSegmentsOperation = defineSentryEndpoint(retrieveReplayRecordingSegmentsDefinition, sentryCredentialSet);
4341
+
4342
+ //#endregion
4343
+ //#region src/operations/retrieve-saved-discover-queries.operation.ts
4344
+ const retrieveSavedDiscoverQueriesOperation = defineSentryEndpoint(retrieveSavedDiscoverQueriesDefinition, sentryCredentialSet);
4345
+
4346
+ //#endregion
4347
+ //#region src/operations/retrieve-saved-discover-query-for-organization.operation.ts
4348
+ const retrieveSavedDiscoverQueryForOrganizationOperation = defineSentryEndpoint(retrieveSavedDiscoverQueryForOrganizationDefinition, sentryCredentialSet);
4349
+
4350
+ //#endregion
4351
+ //#region src/operations/retrieve-short-id-for-organization.operation.ts
4352
+ const retrieveShortIdForOrganizationOperation = defineSentryEndpoint(retrieveShortIdForOrganizationDefinition, sentryCredentialSet);
4353
+
4354
+ //#endregion
4355
+ //#region src/operations/retrieve-source-map-debug-event.operation.ts
4356
+ const retrieveSourceMapDebugEventOperation = defineSentryEndpoint(retrieveSourceMapDebugEventDefinition, sentryCredentialSet);
4357
+
4358
+ //#endregion
4359
+ //#region src/operations/retrieve-team-info-via-organization-id-or-slug.operation.ts
4360
+ const retrieveTeamInfoViaOrganizationIdOrSlugOperation = defineSentryEndpoint(retrieveTeamInfoViaOrganizationIdOrSlugDefinition, sentryCredentialSet);
4361
+
4362
+ //#endregion
4363
+ //#region src/operations/retrieve-team-projects.operation.ts
4364
+ const retrieveTeamProjectsOperation = defineSentryEndpoint(retrieveTeamProjectsDefinition, sentryCredentialSet);
4365
+
4366
+ //#endregion
4367
+ //#region src/operations/retrieve-user-email-information.operation.ts
4368
+ const retrieveUserEmailInformationOperation = defineSentryEndpoint(retrieveUserEmailInformationDefinition, sentryCredentialSet);
4369
+
4370
+ //#endregion
4371
+ //#region src/utils/feedback-endpoints.ts
4372
+ /**
4373
+ * Sentry user-feedback operations. Maps to PLAN.md §6.18 (2 actions).
4374
+ */
4375
+ const ORG_PROJECT = [{
4376
+ name: "organization_slug",
4377
+ placeholder: "{organization_slug}"
4378
+ }, {
4379
+ name: "project_slug",
4380
+ placeholder: "{project_slug}"
4381
+ }];
4382
+ const retrieveUserFeedbackForProjectDefinition = {
4383
+ id: "sentry.retrieve-user-feedback-for-project",
4384
+ name: "List User Feedback",
4385
+ description: "List user feedback submissions for a project.",
4386
+ method: "GET",
4387
+ path: "/api/0/projects/{organization_slug}/{project_slug}/user-feedback/",
4388
+ pathParams: ORG_PROJECT,
4389
+ input: sentryListInputSchema.merge(orgProjectScopeInputSchema),
4390
+ queryFields: [
4391
+ "cursor",
4392
+ "per_page",
4393
+ "query"
4394
+ ],
4395
+ output: z.array(sentryFeedbackSchema),
4396
+ pagination: "cursor",
4397
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectRead]
4398
+ };
4399
+ const submitProjectUserFeedbackDefinition = {
4400
+ id: "sentry.submit-project-user-feedback",
4401
+ name: "Submit User Feedback",
4402
+ description: "Submit a user-feedback record against an event.",
4403
+ method: "POST",
4404
+ path: "/api/0/projects/{organization_slug}/{project_slug}/user-feedback/",
4405
+ pathParams: ORG_PROJECT,
4406
+ input: orgProjectScopeInputSchema.extend({
4407
+ event_id: sentryIdSchema,
4408
+ name: z.string().min(1),
4409
+ email: z.string().email(),
4410
+ comments: z.string().min(1)
4411
+ }),
4412
+ bodyFields: [
4413
+ "event_id",
4414
+ "name",
4415
+ "email",
4416
+ "comments"
4417
+ ],
4418
+ output: sentryFeedbackSchema,
4419
+ needsApproval: true,
4420
+ requiredOAuthScopes: [...SENTRY_SCOPE.projectWrite]
4421
+ };
4422
+
4423
+ //#endregion
4424
+ //#region src/operations/retrieve-user-feedback-for-project.operation.ts
4425
+ const retrieveUserFeedbackForProjectOperation = defineSentryEndpoint(retrieveUserFeedbackForProjectDefinition, sentryCredentialSet);
4426
+
4427
+ //#endregion
4428
+ //#region src/operations/retrieve-user-via-scim-api.operation.ts
4429
+ const retrieveUserViaScimApiOperation = defineSentryEndpoint(retrieveUserViaScimApiDefinition, sentryCredentialSet);
4430
+
4431
+ //#endregion
4432
+ //#region src/operations/save-organization-discover-query.operation.ts
4433
+ const saveOrganizationDiscoverQueryOperation = defineSentryEndpoint(saveOrganizationDiscoverQueryDefinition, sentryCredentialSet);
4434
+
4435
+ //#endregion
4436
+ //#region src/operations/submit-notification-action-api-data.operation.ts
4437
+ const submitNotificationActionApiDataOperation = defineSentryEndpoint(submitNotificationActionApiDataDefinition, sentryCredentialSet);
4438
+
4439
+ //#endregion
4440
+ //#region src/operations/submit-project-user-feedback.operation.ts
4441
+ const submitProjectUserFeedbackOperation = defineSentryEndpoint(submitProjectUserFeedbackDefinition, sentryCredentialSet);
4442
+
4443
+ //#endregion
4444
+ //#region src/operations/switch-team-role-for-member.operation.ts
4445
+ const switchTeamRoleForMemberOperation = defineSentryEndpoint(switchTeamRoleForMemberDefinition, sentryCredentialSet);
4446
+
4447
+ //#endregion
4448
+ //#region src/operations/toggle-project-filter-status.operation.ts
4449
+ const toggleProjectFilterStatusOperation = defineSentryEndpoint(toggleProjectFilterStatusDefinition, sentryCredentialSet);
4450
+
4451
+ //#endregion
4452
+ //#region src/operations/update-environment-visibility.operation.ts
4453
+ const updateEnvironmentVisibilityOperation = defineSentryEndpoint(updateEnvironmentVisibilityDefinition, sentryCredentialSet);
4454
+
4455
+ //#endregion
4456
+ //#region src/operations/update-external-team-integration.operation.ts
4457
+ const updateExternalTeamIntegrationOperation = defineSentryEndpoint(updateExternalTeamIntegrationDefinition, sentryCredentialSet);
4458
+
4459
+ //#endregion
4460
+ //#region src/operations/update-external-user-for-organization.operation.ts
4461
+ const updateExternalUserForOrganizationOperation = defineSentryEndpoint(updateExternalUserForOrganizationDefinition, sentryCredentialSet);
4462
+
4463
+ //#endregion
4464
+ //#region src/operations/update-issue-attributes-in-organization.operation.ts
4465
+ const updateIssueAttributesInOrganizationOperation = defineSentryEndpoint(updateIssueAttributesInOrganizationDefinition, sentryCredentialSet);
4466
+
4467
+ //#endregion
4468
+ //#region src/operations/update-organization-alert-rules.operation.ts
4469
+ const updateOrganizationAlertRulesOperation = defineSentryEndpoint(updateOrganizationAlertRulesDefinition, sentryCredentialSet);
4470
+
4471
+ //#endregion
4472
+ //#region src/operations/update-organization-dashboard.operation.ts
4473
+ const updateOrganizationDashboardOperation = defineSentryEndpoint(updateOrganizationDashboardDefinition, sentryCredentialSet);
4474
+
4475
+ //#endregion
4476
+ //#region src/operations/update-organization-member-role.operation.ts
4477
+ const updateOrganizationMemberRoleOperation = defineSentryEndpoint(updateOrganizationMemberRoleDefinition, sentryCredentialSet);
4478
+
4479
+ //#endregion
4480
+ //#region src/operations/update-project-details.operation.ts
4481
+ const updateProjectDetailsOperation = defineSentryEndpoint(updateProjectDetailsDefinition, sentryCredentialSet);
4482
+
4483
+ //#endregion
4484
+ //#region src/operations/update-project-issue-status-and-details.operation.ts
4485
+ const updateProjectIssueStatusAndDetailsOperation = defineSentryEndpoint(updateProjectIssueStatusAndDetailsDefinition, sentryCredentialSet);
4486
+
4487
+ //#endregion
4488
+ //#region src/operations/update-project-key-configuration.operation.ts
4489
+ const updateProjectKeyConfigurationOperation = defineSentryEndpoint(updateProjectKeyConfigurationDefinition, sentryCredentialSet);
4490
+
4491
+ //#endregion
4492
+ //#region src/operations/update-project-monitor.operation.ts
4493
+ const updateProjectMonitorOperation = defineSentryEndpoint(updateProjectMonitorDefinition, sentryCredentialSet);
4494
+
4495
+ //#endregion
4496
+ //#region src/operations/update-project-ownership-settings.operation.ts
4497
+ const updateProjectOwnershipSettingsOperation = defineSentryEndpoint(updateProjectOwnershipSettingsDefinition, sentryCredentialSet);
4498
+
4499
+ //#endregion
4500
+ //#region src/operations/update-project-release-file-details.operation.ts
4501
+ const updateProjectReleaseFileDetailsOperation = defineSentryEndpoint(updateProjectReleaseFileDetailsDefinition, sentryCredentialSet);
4502
+
4503
+ //#endregion
4504
+ //#region src/operations/update-project-rule-by-id.operation.ts
4505
+ const updateProjectRuleByIdOperation = defineSentryEndpoint(updateProjectRuleByIdDefinition, sentryCredentialSet);
4506
+
4507
+ //#endregion
4508
+ //#region src/operations/update-release-details-for-organization.operation.ts
4509
+ const updateReleaseDetailsForOrganizationOperation = defineSentryEndpoint(updateReleaseDetailsForOrganizationDefinition, sentryCredentialSet);
4510
+
4511
+ //#endregion
4512
+ //#region src/operations/update-saved-query-for-organization.operation.ts
4513
+ const updateSavedQueryForOrganizationOperation = defineSentryEndpoint(updateSavedQueryForOrganizationDefinition, sentryCredentialSet);
4514
+
4515
+ //#endregion
4516
+ //#region src/operations/update-symbol-source-settings.operation.ts
4517
+ const updateSymbolSourceSettingsOperation = defineSentryEndpoint(updateSymbolSourceSettingsDefinition, sentryCredentialSet);
4518
+
4519
+ //#endregion
4520
+ //#region src/operations/update-team-information-by-organization-id.operation.ts
4521
+ const updateTeamInformationByOrganizationIdOperation = defineSentryEndpoint(updateTeamInformationByOrganizationIdDefinition, sentryCredentialSet);
4522
+
4523
+ //#endregion
4524
+ //#region src/operations/update-user-email.operation.ts
4525
+ const updateUserEmailOperation = defineSentryEndpoint(updateUserEmailDefinition, sentryCredentialSet);
4526
+
4527
+ //#endregion
4528
+ //#region src/operations/update-webhook-configuration-xp.operation.ts
4529
+ const updateWebhookConfigurationXpOperation = defineSentryEndpoint(updateWebhookConfigurationDefinition, sentryCredentialSet);
4530
+
4531
+ //#endregion
4532
+ //#region src/operations/upload-dsyms-file-to-project.operation.ts
4533
+ const uploadDsymsFileToProjectOperation = defineSentryEndpoint(uploadDsymsFileToProjectDefinition, sentryCredentialSet);
4534
+
4535
+ //#endregion
4536
+ //#region src/operations/upload-file-to-project-release.operation.ts
4537
+ const uploadFileToProjectReleaseOperation = defineSentryEndpoint(uploadFileToProjectReleaseDefinition, sentryCredentialSet);
4538
+
4539
+ //#endregion
4540
+ //#region src/operations/upload-release-file-to-organization.operation.ts
4541
+ const uploadReleaseFileToOrganizationOperation = defineSentryEndpoint(uploadReleaseFileToOrganizationDefinition, sentryCredentialSet);
4542
+
4543
+ //#endregion
4544
+ //#region src/operations/view-organization-notification-actions.operation.ts
4545
+ const viewOrganizationNotificationActionsOperation = defineSentryEndpoint(viewOrganizationNotificationActionsDefinition, sentryCredentialSet);
4546
+
4547
+ //#endregion
4548
+ export { retrieveProjectFilterDataOperation as $, createScimGroupForOrganizationOperation as $n, getOrganizationStatsSummaryOperation as $t, retrieveUserViaScimApiOperation as A, deleteProjectReplayOperation as An, modifyReleaseFileAttributesOperation as At, retrieveReleaseFileByIdOperation as B, deleteOrganizationIntegrationOperation as Bn, listOrganizationReleasesOperation as Bt, updateExternalTeamIntegrationOperation as C, deleteTeamFromOrgScimV2Operation as Cn, retrieveCommitsForOrganizationRepoOperation as Ct, submitProjectUserFeedbackOperation as D, deleteProjectTeamAssociationOperation as Dn, postProjectSymbolSourcesOperation as Dt, switchTeamRoleForMemberOperation as E, deleteReleaseFileOperation as En, postSpikeProtectionForOrganizationOperation as Et, retrieveSourceMapDebugEventOperation as F, deleteProjectByIdOperation as Fn, listTeamsInOrganizationOperation as Ft, retrieveProjectSymbolSourcesOperation as G, deleteMemberFromTeamOperation as Gn, getSentryAppInstallationsForOrganizationOperation as Gt, retrieveReleaseCommitsOperation as H, deleteOrganizationDashboardOperation as Hn, listOrganizationDashboardsOperation as Ht, retrieveShortIdForOrganizationOperation as I, deleteOrganizationReleaseOperation as In, listScimV2OrganizationUsersOperation as It, retrieveProjectMembersListOperation as J, deleteExternalIssueByUuidOperation as Jn, getProjectMonitorByIdOperation as Jt, retrieveProjectRulesByOrgAndProjectIdOperation as K, deleteExternalUserFromOrganizationOperation as Kn, getScimGroupByTeamIdOperation as Kt, retrieveSavedDiscoverQueryForOrganizationOperation as L, deleteOrganizationMonitorOperation as Ln, listProjectUsersOperation as Lt, retrieveUserEmailInformationOperation as M, deleteProjectKeyOperation as Mn, modifyOrganizationNotificationActionOperation as Mt, retrieveTeamProjectsOperation as N, deleteProjectIssuesOperation as Nn, modifyOrganizationMonitorDataOperation as Nt, submitNotificationActionApiDataOperation as O, deleteProjectSymbolSourcesOperation as On, patchUserActiveStatusInOrganizationOperation as Ot, retrieveTeamInfoViaOrganizationIdOrSlugOperation as P, deleteProjectHookOperation as Pn, manageTeamExternalIntegrationsOperation as Pt, retrieveProjectHooksOperation as Q, createSentryExternalIssueLinkOperation as Qn, getProjectEventStatsOperation as Qt, retrieveSavedDiscoverQueriesOperation as R, deleteOrganizationMemberOperation as Rn, listOrganizationUserTeamsOperation as Rt, updateExternalUserForOrganizationOperation as S, deleteUserEmailsByIdOperation as Sn, retrieveDsymFilesForProjectOperation as St, toggleProjectFilterStatusOperation as T, deleteReleaseFileByIdOperation as Tn, retrieveAlertRuleDetailsOperation as Tt, retrieveProjectTeamsOperation as U, deleteOrganizationAlertRuleOperation as Un, getWhoViewedReplayByProjectOperation as Ut, retrieveReleaseDeploymentsOperation as V, deleteOrganizationDiscoverQueryOperation as Vn, listOrganizationMembersOperation as Vt, retrieveProjectTagValuesOperation as W, deleteOrgNotificationActionOperation as Wn, getTeamMembersByIdOrSlugOperation as Wt, retrieveProjectKeyDetailsOperation as X, createUserForSamlIntegrationOperation as Xn, getProjectHookOperation as Xt, retrieveProjectKeysByOrgAndProjectOperation as Y, deleteDsymsForProjectOperation as Yn, getProjectListOperation as Yt, retrieveProjectIssuesListOperation as Z, createTeamProjectForOrganizationOperation as Zn, getProjectEventsOperation as Zt, updateProjectDetailsOperation as _, fetchOrganizationReplayCountOperation as _n, retrieveIssueTagDetailsOperation as _t, updateWebhookConfigurationXpOperation as a, getOrganizationDetailsOperation as an, createOrganizationTeamOperation as ar, retrieveOrganizationReleaseCommitsOperation as at, updateOrganizationAlertRulesOperation as b, fetchIssueEventByIdOperation as bn, retrieveFilesForReleaseOperation as bt, updateSymbolSourceSettingsOperation as c, getActivationOfAlertRuleForOrganizationOperation as cn, createExternalUserForOrganizationOperation as cr, retrieveOrganizationMonitorsOperation as ct, updateProjectRuleByIdOperation as d, fetchProjectReplayClicksOperation as dn, addTeamMemberInOrganizationOperation as dr, retrieveOrganizationEventsOperation as dt, getOrganizationSessionsOperation as en, createReleaseForOrganizationOperation as er, retrieveProjectEventByIdOperation as et, updateProjectReleaseFileDetailsOperation as f, fetchProjectReleaseFilesOperation as fn, addRemoveUserEmailByIdOperation as fr, retrieveOrganizationDashboardOperation as ft, updateProjectIssueStatusAndDetailsOperation as g, fetchOrganizationReplayDetailsOperation as gn, retrieveMonitorCheckinsOperation as gt, updateProjectKeyConfigurationOperation as h, fetchOrganizationReplaySelectorsOperation as hn, retrieveMonitorCheckinsByOrgOperation as ht, uploadDsymsFileToProjectOperation as i, getOrganizationEnvironmentsOperation as in, createProjectKeyWithOptionalRateLimitingOperation as ir, retrieveOrganizationReplaysOperation as it, retrieveUserFeedbackForProjectOperation as j, deleteProjectMonitorOperation as jn, modifyOrganizationSettingsOperation as jt, saveOrganizationDiscoverQueryOperation as k, deleteProjectRuleOperation as kn, patchScimGroupOperationsOperation as kt, updateSavedQueryForOrganizationOperation as l, fetchTagValuesForIssueOperation as ln, createDashboardWithWidgetsOperation as lr, retrieveOrganizationMemberOperation as lt, updateProjectMonitorOperation as m, fetchProjectEnvironmentDetailsOperation as mn, accessProjectInformationOperation as mr, retrieveNotificationActionByOrgIdOperation as mt, uploadReleaseFileToOrganizationOperation as n, getOrganizationMonitorByIdOrSlugOperation as nn, createProjectWebhookSubscriptionOperation as nr, retrieveOrganizationStatsV2Operation as nt, updateUserEmailOperation as o, getOrganizationByIdOrSlugOperation as on, createOrganizationMonitorOperation as or, retrieveOrganizationRelayUsageOperation as ot, updateProjectOwnershipSettingsOperation as p, fetchProjectOwnershipDetailsOperation as pn, addOrganizationMemberViaEmailOperation as pr, retrieveOrgIntegrationConfigOperation as pt, retrieveProjectReleaseFileDetailsOperation as q, deleteExternalTeamByIdOperation as qn, getProjectRuleDetailsOperation as qt, uploadFileToProjectReleaseOperation as r, getOrganizationIssueDetailsOperation as rn, createProjectRuleForAlertsOperation as rr, retrieveOrganizationScimGroupsOperation as rt, updateTeamInformationByOrganizationIdOperation as s, getIntegrationDetailsByOrgOperation as sn, createOrganizationAlertRuleOperation as sr, retrieveOrganizationProjectsOperation as st, viewOrganizationNotificationActionsOperation as t, getOrganizationReleaseVersionOperation as tn, createReleaseDeployForOrgOperation as tr, retrieveProjectEnvironmentsOperation as tt, updateReleaseDetailsForOrganizationOperation as u, fetchReplayRecordingSegmentOperation as un, addTeamToProjectOperation as ur, retrieveOrganizationIntegrationsListOperation as ut, updateOrganizationMemberRoleOperation as v, fetchOrganizationReleaseThresholdStatusesOperation as vn, retrieveIssueHashesForOrganizationOperation as vt, updateEnvironmentVisibilityOperation as w, deleteTeamByOrganizationOrTeamSlugOperation as wn, retrieveCommitFilesForReleaseOperation as wt, updateIssueAttributesInOrganizationOperation as x, deleteUserFromOrgOperation as xn, retrieveEventIdForOrganizationOperation as xt, updateOrganizationDashboardOperation as y, fetchOrganizationAlertRulesOperation as yn, retrieveIssueEventsByIdOperation as yt, retrieveReplayRecordingSegmentsOperation as z, deleteOrganizationIssueOperation as zn, listOrganizationRepositoriesOperation as zt };