@sentry/api 0.424.0 → 0.425.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.
- package/README.md +55 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +60 -11
- package/dist/sentry-pagination.d.ts +58 -7
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -322,7 +322,7 @@ Sentry uses cursor-based pagination via `Link` headers. Choose one of three help
|
|
|
322
322
|
| Task | Method | Result |
|
|
323
323
|
| --- | --- | --- |
|
|
324
324
|
| Display one page, with previous/next navigation | `sentry.fetchPage.<operation>(options, cursor?)` | `{ data, response, nextCursor?, prevCursor? }` |
|
|
325
|
-
| Collect up to an item limit | `sentry.paginateUpTo.<operation>(options, { limit, ... })` | `{ data, stopReason, nextCursor? }` |
|
|
325
|
+
| Collect up to an item limit | `sentry.paginateUpTo.<operation>(options, { limit, ... })` | `{ data, stopReason, nextCursor?, continuation? }` |
|
|
326
326
|
| Explicitly collect pages eagerly | `sentry.paginateAll.<operation>(options, { maxPages?, startCursor? }?)` | `{ data, stopReason, nextCursor? }` |
|
|
327
327
|
|
|
328
328
|
`fetchPage` is available for operations whose schema declares a `cursor` query parameter. Collection helpers are available only when the operation's 200 response is an array. Compound response bodies remain intact. Ordinary operation methods such as `sentry.listOrganizations()` still make just one request.
|
|
@@ -380,7 +380,59 @@ Automatic sizing is deliberately limited to operations whose forward cursors hav
|
|
|
380
380
|
|
|
381
381
|
Each request uses the smallest of the remaining item budget, the caller's requested page size (if supplied), and the verified maximum. Other operations retain their query options unchanged. In particular, **projects do not use 100 + 100 + 50**: their backend `OffsetPaginator` includes the page size in its cursor, and resizing mid-traversal can skip rows. Declaring `per_page` in the schema is not enough to enable resizing.
|
|
382
382
|
|
|
383
|
-
If a server ignores the size or an operation cannot be resized, the helper trims any excess rows and omits the unsafe
|
|
383
|
+
If a server ignores the size or an operation cannot be resized, the helper trims any excess rows and omits the unsafe server `nextCursor`. It reports `stopReason: "limit"`, even if that was the server's last page. The separate `continuation` retains a position before the pending rows.
|
|
384
|
+
|
|
385
|
+
### Resume a partially consumed page
|
|
386
|
+
|
|
387
|
+
```ts
|
|
388
|
+
const options = {
|
|
389
|
+
path: { organization_id_or_slug: "my-org" },
|
|
390
|
+
query: { per_page: 100 },
|
|
391
|
+
};
|
|
392
|
+
const batch = await sentry.paginateUpTo.listOrganizationProjects(options, { limit: 250 });
|
|
393
|
+
// Requests three pages of 100 and returns 250 rows.
|
|
394
|
+
// nextCursor is absent: the next server page would skip the remaining 50.
|
|
395
|
+
if (batch.continuation) {
|
|
396
|
+
const next = await sentry.paginateUpTo.listOrganizationProjects(options, {
|
|
397
|
+
limit: 25,
|
|
398
|
+
resume: batch.continuation,
|
|
399
|
+
});
|
|
400
|
+
// Refetches the third page unchanged and returns its next 25 rows.
|
|
401
|
+
}
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
`paginateUpTo` returns a `continuation` whenever more rows remain, including on the last server page. Pass it back as `resume`; do not combine it with `startCursor`. At a page boundary it contains the next opaque server `cursor` and `offset: 0`. Within a page it contains the cursor used to fetch that page (absent for the first page), the consumed `offset`, and the original `requestBudget`. It can round-trip through JSON. Keep the same operation, filters, page-size options and fetcher configuration. The SDK does not store credentials, requests or history in it.
|
|
405
|
+
|
|
406
|
+
For standalone `paginateUpTo(fetcher, options, context)`, the callback's second argument is a request budget. It normally equals the remaining item limit. On a partial replay it repeats the original budget so a custom fetcher reconstructs the same request, even when the new batch limit is smaller. After that page, the callback receives the new remaining budget. A callback must retain its own operation-specific sizing rules; the SDK never derives them from the cursor's contents.
|
|
407
|
+
|
|
408
|
+
The standalone collector also accepts a callback returning a normalized `{ data: T[], nextCursor? }` page, including the result of `fetchPage`. Such a callback owns response/error handling and rejects on failure; `request` and `error` are reserved for SDK operation envelopes. Its explicit `nextCursor` is authoritative; the collector does not reinterpret an attached `Response`. SDK operation results retain their existing unwrapping and error behavior. The exported `BudgetedPageFetcher` type is unchanged; `CollectionPageFetcher` describes this additional composition path.
|
|
409
|
+
|
|
410
|
+
```ts
|
|
411
|
+
import { paginateUpTo } from "@sentry/api";
|
|
412
|
+
|
|
413
|
+
const batch = await paginateUpTo(
|
|
414
|
+
cursor => sentry.fetchPage.listOrganizationProjects(options, cursor),
|
|
415
|
+
{ limit: 250 },
|
|
416
|
+
"listOrganizationProjects",
|
|
417
|
+
);
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
`nextCursor` keeps its existing meaning and can still be sent directly to the API. A `continuation` is SDK state, not a server cursor. Existing single-page, custom-bookmark and infinite-query consumers can continue using ordinary operations or `fetchPage`; neither API changes.
|
|
421
|
+
|
|
422
|
+
### Consume an already fetched page
|
|
423
|
+
|
|
424
|
+
For a consumer that owns fetching, `consumePage` shares the row-consumption logic without performing I/O or requiring a `Response`:
|
|
425
|
+
|
|
426
|
+
```ts
|
|
427
|
+
import { consumePage } from "@sentry/api";
|
|
428
|
+
|
|
429
|
+
const page = await sentry.fetchPage.listOrganizationProjects(options, cursor);
|
|
430
|
+
const consumed = consumePage(page, { cursor, offset: 0 }, 25);
|
|
431
|
+
// Keep page.response and any consumer metadata separately.
|
|
432
|
+
// consumed.position identifies where to continue; absence means exhausted.
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
To resume a position, fetch its cursor with the same page options and pass that position to `consumePage`. A manual `PagePosition` describes row consumption; `paginateUpTo` additionally records the request budget in its `PaginationContinuation`. The caller owns serialization, custom filtering/bookmarks and navigation history. Neither helper snapshots data against concurrent server changes.
|
|
384
436
|
|
|
385
437
|
### Eager collection and completion
|
|
386
438
|
|
|
@@ -393,7 +445,7 @@ console.log(projects.data, projects.stopReason);
|
|
|
393
445
|
// If stopReason is "maxPages", projects.nextCursor resumes traversal.
|
|
394
446
|
```
|
|
395
447
|
|
|
396
|
-
Both collection helpers return `PaginatedCollection<TItem
|
|
448
|
+
Both collection helpers return `PaginatedCollection<TItem>`. Only `paginateUpTo` supplies the additional `continuation` described above:
|
|
397
449
|
|
|
398
450
|
| `stopReason` | Meaning | `nextCursor` |
|
|
399
451
|
| --- | --- | --- |
|
package/dist/index.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ export { addOrganizationMember, addOrganizationMemberTeam, addProjectSymbolSourc
|
|
|
2
2
|
export type { ActionFilterValidator, AddOrganizationMemberData, AddOrganizationMemberErrors, AddOrganizationMemberResponse, AddOrganizationMemberResponses, AddOrganizationMemberTeamData, AddOrganizationMemberTeamErrors, AddOrganizationMemberTeamResponse, AddOrganizationMemberTeamResponses, AddProjectSymbolSourceData, AddProjectSymbolSourceErrors, AddProjectSymbolSourceResponse, AddProjectSymbolSourceResponses, AddProjectTeamData, AddProjectTeamErrors, AddProjectTeamResponse, AddProjectTeamResponses, ArtifactBundleAssembleResponse, AssembleOrganizationArtifactBundleData, AssembleOrganizationArtifactBundleErrors, AssembleOrganizationArtifactBundleResponse, AssembleOrganizationArtifactBundleResponses, AssembleProjectDebugFilesData, AssembleProjectDebugFilesErrors, AssembleProjectDebugFilesResponse, AssembleProjectDebugFilesResponse2, AssembleProjectDebugFilesResponses, AutofixPostResponse, AutofixStateResponse, BaseDataConditionGroupValidator, BaseDetectorTypeValidator, BaseTeam, BulkCodeMappingsPartialResponse, BulkCodeMappingsRequest, BulkCodeMappingsResponse, BulkEnvironment, BulkUpdateAlerts, BulkUpdateMonitors, BulkUpdateProjectEnvironments, BulkUpsertOrganizationCodeMappingsData, BulkUpsertOrganizationCodeMappingsErrors, BulkUpsertOrganizationCodeMappingsResponse, BulkUpsertOrganizationCodeMappingsResponses, CheckInList, ChunkUpload, ChunkUploadOptionsResponse, ClientOptions, Commit, CommitPatchSet, CommitSerializerResponse, ConfigValidator, CreateExternalIssueRequest, CreateOrganizationCodeMappingData, CreateOrganizationCodeMappingErrors, CreateOrganizationCodeMappingRequest, CreateOrganizationCodeMappingResponse, CreateOrganizationCodeMappingResponses, CreateOrganizationDashboardData, CreateOrganizationDashboardErrors, CreateOrganizationDashboardResponse, CreateOrganizationDashboardResponses, CreateOrganizationDiscoverSavedQueryData, CreateOrganizationDiscoverSavedQueryErrors, CreateOrganizationDiscoverSavedQueryResponse, CreateOrganizationDiscoverSavedQueryResponses, CreateOrganizationExternalUserData, CreateOrganizationExternalUserErrors, CreateOrganizationExternalUserResponse, CreateOrganizationExternalUserResponses, CreateOrganizationForwardingData, CreateOrganizationForwardingErrors, CreateOrganizationForwardingResponse, CreateOrganizationForwardingResponses, CreateOrganizationIssueIntegrationData, CreateOrganizationIssueIntegrationErrors, CreateOrganizationIssueIntegrationResponse, CreateOrganizationIssueIntegrationResponses, CreateOrganizationIssueViewData, CreateOrganizationIssueViewErrors, CreateOrganizationIssueViewResponse, CreateOrganizationIssueViewResponses, CreateOrganizationMonitorData, CreateOrganizationMonitorErrors, CreateOrganizationMonitorResponse, CreateOrganizationMonitorResponses, CreateOrganizationNotificationsActionData, CreateOrganizationNotificationsActionErrors, CreateOrganizationNotificationsActionResponse, CreateOrganizationNotificationsActionResponses, CreateOrganizationProjectData, CreateOrganizationProjectDetectorData, CreateOrganizationProjectDetectorErrors, CreateOrganizationProjectDetectorResponse, CreateOrganizationProjectDetectorResponses, CreateOrganizationProjectErrors, CreateOrganizationProjectResponse, CreateOrganizationProjectResponses, CreateOrganizationReleaseData, CreateOrganizationReleaseDeployData, CreateOrganizationReleaseDeployErrors, CreateOrganizationReleaseDeployResponse, CreateOrganizationReleaseDeployResponses, CreateOrganizationReleaseErrors, CreateOrganizationReleaseResponse, CreateOrganizationReleaseResponse2, CreateOrganizationReleaseResponses, CreateOrganizationSpikeProtectionData, CreateOrganizationSpikeProtectionErrors, CreateOrganizationSpikeProtectionResponses, CreateOrganizationTeamData, CreateOrganizationTeamErrors, CreateOrganizationTeamResponse, CreateOrganizationTeamResponses, CreateOrganizationWorkflowData, CreateOrganizationWorkflowErrors, CreateOrganizationWorkflowResponse, CreateOrganizationWorkflowResponses, CreateProjectCodeOwnersData, CreateProjectCodeOwnersErrors, CreateProjectCodeOwnersResponse, CreateProjectCodeOwnersResponses, CreateProjectCustomInboundFilterData, CreateProjectCustomInboundFilterErrors, CreateProjectCustomInboundFilterResponse, CreateProjectCustomInboundFilterResponses, CreateProjectHookData, CreateProjectHookErrors, CreateProjectHookResponse, CreateProjectHookResponses, CreateProjectKeyData, CreateProjectKeyErrors, CreateProjectKeyResponse, CreateProjectKeyResponses, CreateProjectPreprodSizeAnalysisSkippedStatusCheckData, CreateProjectPreprodSizeAnalysisSkippedStatusCheckErrors, CreateProjectPreprodSizeAnalysisSkippedStatusCheckResponses, CreateProjectPreprodSnapshotSkippedStatusCheckData, CreateProjectPreprodSnapshotSkippedStatusCheckErrors, CreateProjectPreprodSnapshotSkippedStatusCheckResponses, CreateProjectReplayDeletionJobData, CreateProjectReplayDeletionJobErrors, CreateProjectReplayDeletionJobResponse, CreateProjectReplayDeletionJobResponses, CreateProjectUserFeedbackData, CreateProjectUserFeedbackErrors, CreateProjectUserFeedbackResponse, CreateProjectUserFeedbackResponses, CreateReplayDeletionJob, CreateSentryAppInstallationExternalIssueData, CreateSentryAppInstallationExternalIssueErrors, CreateSentryAppInstallationExternalIssueResponse, CreateSentryAppInstallationExternalIssueResponses, CreateTeamExternalTeamData, CreateTeamExternalTeamErrors, CreateTeamExternalTeamResponse, CreateTeamExternalTeamResponses, CreateTeamProjectData, CreateTeamProjectErrors, CreateTeamProjectResponse, CreateTeamProjectResponses, CustomInboundFilter, CustomInboundFilterCondition, CustomInboundFilterWritable, Dashboard, DashboardCreateWidget, DashboardCreateWidgetLayout, DashboardDetails, DashboardDetailsModel, DashboardListResponse, DashboardPermissions, DashboardWidget, DashboardWidgetQuery, DashboardWidgetQueryOnDemand, DataForwarder, DataForwarderResponse, DeleteOrganizationCodeMappingData, DeleteOrganizationCodeMappingErrors, DeleteOrganizationCodeMappingResponse, DeleteOrganizationCodeMappingResponses, DeleteOrganizationDashboardData, DeleteOrganizationDashboardErrors, DeleteOrganizationDashboardResponse, DeleteOrganizationDashboardResponses, DeleteOrganizationDetectorData, DeleteOrganizationDetectorErrors, DeleteOrganizationDetectorResponse, DeleteOrganizationDetectorResponses, DeleteOrganizationDetectorsData, DeleteOrganizationDetectorsErrors, DeleteOrganizationDetectorsResponse, DeleteOrganizationDetectorsResponses, DeleteOrganizationDiscoverSavedQueryData, DeleteOrganizationDiscoverSavedQueryErrors, DeleteOrganizationDiscoverSavedQueryResponse, DeleteOrganizationDiscoverSavedQueryResponses, DeleteOrganizationExternalUserData, DeleteOrganizationExternalUserErrors, DeleteOrganizationExternalUserResponse, DeleteOrganizationExternalUserResponses, DeleteOrganizationForwardingData, DeleteOrganizationForwardingErrors, DeleteOrganizationForwardingResponse, DeleteOrganizationForwardingResponses, DeleteOrganizationIntegrationData, DeleteOrganizationIntegrationErrors, DeleteOrganizationIntegrationResponse, DeleteOrganizationIntegrationResponses, DeleteOrganizationIssueData, DeleteOrganizationIssueErrors, DeleteOrganizationIssueExternalIssueData, DeleteOrganizationIssueExternalIssueErrors, DeleteOrganizationIssueExternalIssueResponse, DeleteOrganizationIssueExternalIssueResponses, DeleteOrganizationIssueIntegrationData, DeleteOrganizationIssueIntegrationError, DeleteOrganizationIssueIntegrationErrors, DeleteOrganizationIssueIntegrationResponse, DeleteOrganizationIssueIntegrationResponses, DeleteOrganizationIssueResponses, DeleteOrganizationIssuesData, DeleteOrganizationIssuesErrors, DeleteOrganizationIssuesResponse, DeleteOrganizationIssuesResponses, DeleteOrganizationMemberData, DeleteOrganizationMemberErrors, DeleteOrganizationMemberResponse, DeleteOrganizationMemberResponses, DeleteOrganizationMemberTeamData, DeleteOrganizationMemberTeamErrors, DeleteOrganizationMemberTeamResponse, DeleteOrganizationMemberTeamResponses, DeleteOrganizationMonitorData, DeleteOrganizationMonitorErrors, DeleteOrganizationMonitorResponses, DeleteOrganizationNotificationsActionData, DeleteOrganizationNotificationsActionResponse, DeleteOrganizationNotificationsActionResponses, DeleteOrganizationPreprodArtifactSnapshotData, DeleteOrganizationPreprodArtifactSnapshotErrors, DeleteOrganizationPreprodArtifactSnapshotResponse, DeleteOrganizationPreprodArtifactSnapshotResponses, DeleteOrganizationReleaseData, DeleteOrganizationReleaseErrors, DeleteOrganizationReleaseFileData, DeleteOrganizationReleaseFileErrors, DeleteOrganizationReleaseFileResponse, DeleteOrganizationReleaseFileResponses, DeleteOrganizationReleaseResponse, DeleteOrganizationReleaseResponses, DeleteOrganizationScimV2GroupData, DeleteOrganizationScimV2GroupErrors, DeleteOrganizationScimV2GroupResponse, DeleteOrganizationScimV2GroupResponses, DeleteOrganizationScimV2UserData, DeleteOrganizationScimV2UserErrors, DeleteOrganizationScimV2UserResponse, DeleteOrganizationScimV2UserResponses, DeleteOrganizationSpikeProtectionsData, DeleteOrganizationSpikeProtectionsErrors, DeleteOrganizationSpikeProtectionsResponses, DeleteOrganizationWorkflowData, DeleteOrganizationWorkflowErrors, DeleteOrganizationWorkflowResponse, DeleteOrganizationWorkflowResponses, DeleteOrganizationWorkflowsData, DeleteOrganizationWorkflowsErrors, DeleteOrganizationWorkflowsResponse, DeleteOrganizationWorkflowsResponses, DeleteProjectCodeOwnersData, DeleteProjectCodeOwnersErrors, DeleteProjectCodeOwnersResponse, DeleteProjectCodeOwnersResponses, DeleteProjectCustomInboundFilterData, DeleteProjectCustomInboundFilterErrors, DeleteProjectCustomInboundFilterResponse, DeleteProjectCustomInboundFilterResponses, DeleteProjectData, DeleteProjectErrors, DeleteProjectHookData, DeleteProjectHookErrors, DeleteProjectHookResponse, DeleteProjectHookResponses, DeleteProjectIssuesData, DeleteProjectIssuesErrors, DeleteProjectIssuesResponse, DeleteProjectIssuesResponses, DeleteProjectKeyData, DeleteProjectKeyErrors, DeleteProjectKeyResponse, DeleteProjectKeyResponses, DeleteProjectMonitorData, DeleteProjectMonitorErrors, DeleteProjectMonitorResponses, DeleteProjectReleaseFileData, DeleteProjectReleaseFileErrors, DeleteProjectReleaseFileResponse, DeleteProjectReleaseFileResponses, DeleteProjectReplayData, DeleteProjectReplayErrors, DeleteProjectReplayResponse, DeleteProjectReplayResponses, DeleteProjectResponse, DeleteProjectResponses, DeleteProjectSymbolSourceData, DeleteProjectSymbolSourceErrors, DeleteProjectSymbolSourceResponse, DeleteProjectSymbolSourceResponses, DeleteProjectTeamData, DeleteProjectTeamErrors, DeleteProjectTeamResponse, DeleteProjectTeamResponses, DeleteSentryAppData, DeleteSentryAppErrors, DeleteSentryAppInstallationExternalIssueData, DeleteSentryAppInstallationExternalIssueErrors, DeleteSentryAppInstallationExternalIssueResponse, DeleteSentryAppInstallationExternalIssueResponses, DeleteSentryAppResponse, DeleteSentryAppResponses, DeleteTeamData, DeleteTeamErrors, DeleteTeamExternalTeamData, DeleteTeamExternalTeamErrors, DeleteTeamExternalTeamResponse, DeleteTeamExternalTeamResponses, DeleteTeamResponse, DeleteTeamResponses, Deploy, DeployResponse, DetailedProject, Detector, DiscoverSavedQuery, DiscoverSavedQueryListResponse, DiscoverSavedQueryModel, DynamicSamplingBias, DynamicSdkLoaderOption, Environment, EnvironmentProject, EventAttachmentDetailsResponse, EventIdLookupResponse, ExecuteSentryAppInstallationExternalIssueActionData, ExecuteSentryAppInstallationExternalIssueActionErrors, ExecuteSentryAppInstallationExternalIssueActionResponse, ExecuteSentryAppInstallationExternalIssueActionResponses, ExplorerAutofixRequest, ExternalActor, ExternalIssueLinkResponse, ExternalTeam, ExternalUser, ExternalUserWritable, Filters, GetFlagLogResponse, GetOrganizationChunkUploadOptionsData, GetOrganizationChunkUploadOptionsErrors, GetOrganizationChunkUploadOptionsResponse, GetOrganizationChunkUploadOptionsResponses, GetOrganizationConfigIntegrationsData, GetOrganizationConfigIntegrationsErrors, GetOrganizationConfigIntegrationsResponse, GetOrganizationConfigIntegrationsResponses, GetOrganizationDashboardData, GetOrganizationDashboardErrors, GetOrganizationDashboardResponse, GetOrganizationDashboardResponses, GetOrganizationData, GetOrganizationDetectorData, GetOrganizationDetectorErrors, GetOrganizationDetectorResponse, GetOrganizationDetectorResponses, GetOrganizationDiscoverSavedQueryData, GetOrganizationDiscoverSavedQueryErrors, GetOrganizationDiscoverSavedQueryResponse, GetOrganizationDiscoverSavedQueryResponses, GetOrganizationErrors, GetOrganizationIntegrationData, GetOrganizationIntegrationResponse, GetOrganizationIntegrationResponses, GetOrganizationIssueAutofixStateData, GetOrganizationIssueAutofixStateErrors, GetOrganizationIssueAutofixStateResponse, GetOrganizationIssueAutofixStateResponses, GetOrganizationIssueData, GetOrganizationIssueErrors, GetOrganizationIssueEventData, GetOrganizationIssueEventErrors, GetOrganizationIssueEventResponse, GetOrganizationIssueEventResponses, GetOrganizationIssueIntegrationData, GetOrganizationIssueIntegrationErrors, GetOrganizationIssueIntegrationResponse, GetOrganizationIssueIntegrationResponses, GetOrganizationIssueResponse, GetOrganizationIssueResponses, GetOrganizationIssueTagData, GetOrganizationIssueTagErrors, GetOrganizationIssueTagResponse, GetOrganizationIssueTagResponses, GetOrganizationMemberData, GetOrganizationMemberErrors, GetOrganizationMemberResponse, GetOrganizationMemberResponses, GetOrganizationMonitorData, GetOrganizationMonitorErrors, GetOrganizationMonitorResponse, GetOrganizationMonitorResponses, GetOrganizationNotificationsActionData, GetOrganizationNotificationsActionResponse, GetOrganizationNotificationsActionResponses, GetOrganizationPreprodArtifactInstallDetailsData, GetOrganizationPreprodArtifactInstallDetailsErrors, GetOrganizationPreprodArtifactInstallDetailsResponse, GetOrganizationPreprodArtifactInstallDetailsResponses, GetOrganizationPreprodArtifactSizeAnalysisData, GetOrganizationPreprodArtifactSizeAnalysisErrors, GetOrganizationPreprodArtifactSizeAnalysisResponse, GetOrganizationPreprodArtifactSizeAnalysisResponses, GetOrganizationPreprodArtifactSnapshotData, GetOrganizationPreprodArtifactSnapshotErrors, GetOrganizationPreprodArtifactSnapshotImageData, GetOrganizationPreprodArtifactSnapshotImageErrors, GetOrganizationPreprodArtifactSnapshotImageResponse, GetOrganizationPreprodArtifactSnapshotImageResponses, GetOrganizationPreprodArtifactSnapshotLatestBaseData, GetOrganizationPreprodArtifactSnapshotLatestBaseErrors, GetOrganizationPreprodArtifactSnapshotLatestBaseResponse, GetOrganizationPreprodArtifactSnapshotLatestBaseResponses, GetOrganizationPreprodArtifactSnapshotResponse, GetOrganizationPreprodArtifactSnapshotResponses, GetOrganizationProfilingFlamegraphData, GetOrganizationProfilingFlamegraphErrors, GetOrganizationProfilingFlamegraphResponse, GetOrganizationProfilingFlamegraphResponses, GetOrganizationReleaseData, GetOrganizationReleaseErrors, GetOrganizationReleaseFileData, GetOrganizationReleaseFileErrors, GetOrganizationReleaseFileResponse, GetOrganizationReleaseFileResponses, GetOrganizationReleaseResponse, GetOrganizationReleaseResponses, GetOrganizationReplayCountData, GetOrganizationReplayCountErrors, GetOrganizationReplayCountResponse, GetOrganizationReplayCountResponses, GetOrganizationReplayData, GetOrganizationReplayErrors, GetOrganizationReplayResponse, GetOrganizationReplayResponses, GetOrganizationResponse, GetOrganizationResponses, GetOrganizationScimV2GroupData, GetOrganizationScimV2GroupErrors, GetOrganizationScimV2GroupResponse, GetOrganizationScimV2GroupResponses, GetOrganizationScimV2ResourceTypeData, GetOrganizationScimV2ResourceTypeErrors, GetOrganizationScimV2ResourceTypeResponse, GetOrganizationScimV2ResourceTypeResponses, GetOrganizationScimV2SchemaData, GetOrganizationScimV2SchemaErrors, GetOrganizationScimV2SchemaResponse, GetOrganizationScimV2SchemaResponses, GetOrganizationScimV2ServiceProviderConfigData, GetOrganizationScimV2ServiceProviderConfigErrors, GetOrganizationScimV2ServiceProviderConfigResponse, GetOrganizationScimV2ServiceProviderConfigResponses, GetOrganizationScimV2UserData, GetOrganizationScimV2UserErrors, GetOrganizationScimV2UserResponse, GetOrganizationScimV2UserResponses, GetOrganizationSessionsData, GetOrganizationSessionsErrors, GetOrganizationSessionsResponse, GetOrganizationSessionsResponses, GetOrganizationStatsSummaryData, GetOrganizationStatsSummaryErrors, GetOrganizationStatsSummaryResponse, GetOrganizationStatsSummaryResponses, GetOrganizationTraceData, GetOrganizationTraceErrors, GetOrganizationTraceMetaData, GetOrganizationTraceMetaErrors, GetOrganizationTraceMetaResponse, GetOrganizationTraceMetaResponses, GetOrganizationTraceResponse, GetOrganizationTraceResponses, GetOrganizationWorkflowData, GetOrganizationWorkflowErrors, GetOrganizationWorkflowResponse, GetOrganizationWorkflowResponses, GetProjectCustomInboundFilterData, GetProjectCustomInboundFilterErrors, GetProjectCustomInboundFilterResponse, GetProjectCustomInboundFilterResponses, GetProjectData, GetProjectEnvironmentData, GetProjectEnvironmentErrors, GetProjectEnvironmentResponse, GetProjectEnvironmentResponses, GetProjectErrors, GetProjectEventAttachmentData, GetProjectEventAttachmentErrors, GetProjectEventAttachmentResponse, GetProjectEventAttachmentResponses, GetProjectEventData, GetProjectEventErrors, GetProjectEventResponse, GetProjectEventResponses, GetProjectEventSourceMapDebugData, GetProjectEventSourceMapDebugErrors, GetProjectEventSourceMapDebugResponse, GetProjectEventSourceMapDebugResponses, GetProjectHookData, GetProjectHookErrors, GetProjectHookResponse, GetProjectHookResponses, GetProjectInstallableBuildLatestData, GetProjectInstallableBuildLatestErrors, GetProjectInstallableBuildLatestResponse, GetProjectInstallableBuildLatestResponses, GetProjectKeyData, GetProjectKeyErrors, GetProjectKeyResponse, GetProjectKeyResponses, GetProjectMonitorData, GetProjectMonitorErrors, GetProjectMonitorResponse, GetProjectMonitorResponses, GetProjectOwnershipData, GetProjectOwnershipResponse, GetProjectOwnershipResponses, GetProjectPreprodSizeAnalysisStatusCheckRulesData, GetProjectPreprodSizeAnalysisStatusCheckRulesErrors, GetProjectPreprodSizeAnalysisStatusCheckRulesResponse, GetProjectPreprodSizeAnalysisStatusCheckRulesResponses, GetProjectPreprodSnapshotStatusCheckRulesData, GetProjectPreprodSnapshotStatusCheckRulesErrors, GetProjectPreprodSnapshotStatusCheckRulesResponse, GetProjectPreprodSnapshotStatusCheckRulesResponses, GetProjectProfilingProfileData, GetProjectProfilingProfileErrors, GetProjectProfilingProfileResponse, GetProjectProfilingProfileResponses, GetProjectReleaseFileData, GetProjectReleaseFileErrors, GetProjectReleaseFileResponse, GetProjectReleaseFileResponses, GetProjectReleaseSetupCompletionData, GetProjectReleaseSetupCompletionErrors, GetProjectReleaseSetupCompletionResponse, GetProjectReleaseSetupCompletionResponses, GetProjectReplayDeletionJobData, GetProjectReplayDeletionJobErrors, GetProjectReplayDeletionJobResponse, GetProjectReplayDeletionJobResponses, GetProjectReplayRecordingSegmentData, GetProjectReplayRecordingSegmentErrors, GetProjectReplayRecordingSegmentResponse, GetProjectReplayRecordingSegmentResponses, GetProjectResponse, GetProjectResponses, GetProjectStacktraceLinkData, GetProjectStacktraceLinkErrors, GetProjectStacktraceLinkResponse, GetProjectStacktraceLinkResponses, GetReplay, GetReplayDeletionJob, GetReplayRecordingSegment, GetReplayViewedBy, GetSentryAppData, GetSentryAppInstallationExternalRequestOptionsData, GetSentryAppInstallationExternalRequestOptionsErrors, GetSentryAppInstallationExternalRequestOptionsResponse, GetSentryAppInstallationExternalRequestOptionsResponses, GetSentryAppResponse, GetSentryAppResponses, GetTeamData, GetTeamErrors, GetTeamResponse, GetTeamResponses, GroupDetailsResponse, GroupEventsResponseDict, GroupExternalIssueResponse, GroupHashesResponse, GroupSearchViewPostValidator, GroupSearchViewTimeFilters, GroupUpdateResponse, GroupValidator, InCommitValidator, InstallInfoResponse, IntegrationChannelsResponse, IntegrationChannelValidationResponse, IntegrationIssueConfigResponse, IntegrationRepositoriesResponse, IssueEventDetailsResponse, IssueIntegrationsResponse, IssueLinkConflict, LatestBaseSnapshotResponse, LatestInstallableBuildResponse, Layout, LegacyBrowserFilter, LinkedDashboard, LinkExternalIssueRequest, LinkProjectRepositoryData, LinkProjectRepositoryErrors, LinkProjectRepositoryResponse, LinkProjectRepositoryResponses, ListClientKeysResponse, ListDataForwarderResponse, ListDetectorSerializerResponse, ListEventAttachmentsResponse, ListFlagLogsResponse, ListMemberOnTeamResponse, ListOrganizationAiConversationsData, ListOrganizationAiConversationsErrors, ListOrganizationAiConversationsResponse, ListOrganizationAiConversationsResponse2, ListOrganizationAiConversationsResponses, ListOrganizationClientKeysResponse, ListOrganizationCodeMappingsData, ListOrganizationCodeMappingsErrors, ListOrganizationCodeMappingsResponse, ListOrganizationCodeMappingsResponse2, ListOrganizationCodeMappingsResponses, ListOrganizationCodeownersAssociationsData, ListOrganizationCodeownersAssociationsErrors, ListOrganizationCodeownersAssociationsResponse, ListOrganizationCodeownersAssociationsResponses, ListOrganizationDashboardsData, ListOrganizationDashboardsErrors, ListOrganizationDashboardsResponse, ListOrganizationDashboardsResponses, ListOrganizationDetectorsData, ListOrganizationDetectorsErrors, ListOrganizationDetectorsResponse, ListOrganizationDetectorsResponses, ListOrganizationDiscoverSavedQueriesData, ListOrganizationDiscoverSavedQueriesErrors, ListOrganizationDiscoverSavedQueriesResponse, ListOrganizationDiscoverSavedQueriesResponses, ListOrganizationEnvironmentsData, ListOrganizationEnvironmentsErrors, ListOrganizationEnvironmentsResponse, ListOrganizationEnvironmentsResponses, ListOrganizationEventsData, ListOrganizationEventsDroppedData, ListOrganizationEventsDroppedErrors, ListOrganizationEventsDroppedResponse, ListOrganizationEventsDroppedResponses, ListOrganizationEventsErrors, ListOrganizationEventsResponse, ListOrganizationEventsResponses, ListOrganizationEventsTimeseriesData, ListOrganizationEventsTimeseriesErrors, ListOrganizationEventsTimeseriesResponse, ListOrganizationEventsTimeseriesResponses, ListOrganizationFlagLogsData, ListOrganizationFlagLogsErrors, ListOrganizationFlagLogsResponse, ListOrganizationFlagLogsResponses, ListOrganizationForwardingData, ListOrganizationForwardingResponse, ListOrganizationForwardingResponses, ListOrganizationIntegrationChannelsData, ListOrganizationIntegrationChannelsErrors, ListOrganizationIntegrationChannelsResponse, ListOrganizationIntegrationChannelsResponses, ListOrganizationIntegrationRepositoriesData, ListOrganizationIntegrationRepositoriesErrors, ListOrganizationIntegrationRepositoriesResponse, ListOrganizationIntegrationRepositoriesResponses, ListOrganizationIntegrationResponse, ListOrganizationIntegrationsData, ListOrganizationIntegrationsResponse, ListOrganizationIntegrationsResponses, ListOrganizationIssueEventsData, ListOrganizationIssueEventsErrors, ListOrganizationIssueEventsResponse, ListOrganizationIssueEventsResponses, ListOrganizationIssueExternalIssuesData, ListOrganizationIssueExternalIssuesResponse, ListOrganizationIssueExternalIssuesResponses, ListOrganizationIssueHashesData, ListOrganizationIssueHashesErrors, ListOrganizationIssueHashesResponse, ListOrganizationIssueHashesResponses, ListOrganizationIssueIntegrationsData, ListOrganizationIssueIntegrationsResponse, ListOrganizationIssueIntegrationsResponses, ListOrganizationIssuesData, ListOrganizationIssuesErrors, ListOrganizationIssuesResponse, ListOrganizationIssuesResponses, ListOrganizationIssueTagValuesData, ListOrganizationIssueTagValuesErrors, ListOrganizationIssueTagValuesResponse, ListOrganizationIssueTagValuesResponses, ListOrganizationIssueViewsData, ListOrganizationIssueViewsErrors, ListOrganizationIssueViewsResponse, ListOrganizationIssueViewsResponses, ListOrganizationMemberResponse, ListOrganizationMembersData, ListOrganizationMembersErrors, ListOrganizationMembersResponse, ListOrganizationMembersResponses, ListOrganizationMonitorCheckinsData, ListOrganizationMonitorCheckinsErrors, ListOrganizationMonitorCheckinsResponse, ListOrganizationMonitorCheckinsResponses, ListOrganizationMonitorsData, ListOrganizationMonitorsErrors, ListOrganizationMonitorsResponse, ListOrganizationMonitorsResponses, ListOrganizationNotificationsActionsData, ListOrganizationNotificationsActionsErrors, ListOrganizationNotificationsActionsResponse, ListOrganizationNotificationsActionsResponses, ListOrganizationProfilingChunksData, ListOrganizationProfilingChunksErrors, ListOrganizationProfilingChunksResponse, ListOrganizationProfilingChunksResponses, ListOrganizationProjectKeysData, ListOrganizationProjectKeysErrors, ListOrganizationProjectKeysResponse, ListOrganizationProjectKeysResponses, ListOrganizationProjectsData, ListOrganizationProjectsErrors, ListOrganizationProjectsResponse, ListOrganizationProjectsResponses, ListOrganizationRelayUsageData, ListOrganizationRelayUsageErrors, ListOrganizationRelayUsageResponse, ListOrganizationRelayUsageResponses, ListOrganizationReleaseCommitfilesData, ListOrganizationReleaseCommitfilesErrors, ListOrganizationReleaseCommitfilesResponses, ListOrganizationReleaseCommitsData, ListOrganizationReleaseCommitsErrors, ListOrganizationReleaseCommitsResponse, ListOrganizationReleaseCommitsResponse2, ListOrganizationReleaseCommitsResponses, ListOrganizationReleaseDeploysData, ListOrganizationReleaseDeploysResponse, ListOrganizationReleaseDeploysResponses, ListOrganizationReleaseFilesData, ListOrganizationReleaseFilesErrors, ListOrganizationReleaseFilesResponse, ListOrganizationReleaseFilesResponses, ListOrganizationReleasesData, ListOrganizationReleasesErrors, ListOrganizationReleasesResponse, ListOrganizationReleasesResponse2, ListOrganizationReleasesResponses, ListOrganizationReleaseThresholdStatusesData, ListOrganizationReleaseThresholdStatusesErrors, ListOrganizationReleaseThresholdStatusesResponse, ListOrganizationReleaseThresholdStatusesResponses, ListOrganizationReplaysData, ListOrganizationReplaySelectorsData, ListOrganizationReplaySelectorsErrors, ListOrganizationReplaySelectorsResponse, ListOrganizationReplaySelectorsResponses, ListOrganizationReplaysErrors, ListOrganizationReplaysResponse, ListOrganizationReplaysResponses, ListOrganizationRepoCommitsData, ListOrganizationRepoCommitsErrors, ListOrganizationRepoCommitsResponse, ListOrganizationRepoCommitsResponses, ListOrganizationReposData, ListOrganizationReposErrors, ListOrganizationRepositoriesResponse, ListOrganizationReposResponse, ListOrganizationReposResponses, ListOrganizations, ListOrganizationScimV2GroupsData, ListOrganizationScimV2GroupsErrors, ListOrganizationScimV2GroupsResponse, ListOrganizationScimV2GroupsResponses, ListOrganizationScimV2ResourceTypesData, ListOrganizationScimV2ResourceTypesErrors, ListOrganizationScimV2ResourceTypesResponse, ListOrganizationScimV2ResourceTypesResponses, ListOrganizationScimV2UsersData, ListOrganizationScimV2UsersErrors, ListOrganizationScimV2UsersResponse, ListOrganizationScimV2UsersResponses, ListOrganizationsData, ListOrganizationSentryAppComponentsData, ListOrganizationSentryAppComponentsErrors, ListOrganizationSentryAppComponentsResponse, ListOrganizationSentryAppComponentsResponses, ListOrganizationSentryAppInstallationsData, ListOrganizationSentryAppInstallationsErrors, ListOrganizationSentryAppInstallationsResponse, ListOrganizationSentryAppInstallationsResponses, ListOrganizationSentryAppsData, ListOrganizationSentryAppsResponse, ListOrganizationSentryAppsResponses, ListOrganizationsErrors, ListOrganizationsResponse, ListOrganizationsResponses, ListOrganizationStatsV2Data, ListOrganizationStatsV2Errors, ListOrganizationStatsV2Response, ListOrganizationStatsV2Responses, ListOrganizationTagsData, ListOrganizationTagsErrors, ListOrganizationTagsResponse, ListOrganizationTagsResponse2, ListOrganizationTagsResponses, ListOrganizationTeamsData, ListOrganizationTeamsErrors, ListOrganizationTeamsResponse, ListOrganizationTeamsResponses, ListOrganizationTraceItemAttributesData, ListOrganizationTraceItemAttributesErrors, ListOrganizationTraceItemAttributesResponse, ListOrganizationTraceItemAttributesResponses, ListOrganizationTraceItemsStatsData, ListOrganizationTraceItemsStatsErrors, ListOrganizationTraceItemsStatsResponse, ListOrganizationTraceItemsStatsResponses, ListOrganizationTraceMetricsData, ListOrganizationTraceMetricsErrors, ListOrganizationTraceMetricsResponse, ListOrganizationTraceMetricsResponse2, ListOrganizationTraceMetricsResponses, ListOrganizationUserTeamsData, ListOrganizationUserTeamsErrors, ListOrganizationUserTeamsResponse, ListOrganizationUserTeamsResponses, ListOrganizationWorkflowsData, ListOrganizationWorkflowsErrors, ListOrganizationWorkflowsResponse, ListOrganizationWorkflowsResponses, ListOrgMembersResponse, ListOrgTeamResponse, ListProjectCodeOwnersData, ListProjectCodeOwnersErrors, ListProjectCodeOwnersResponse, ListProjectCodeOwnersResponses, ListProjectCustomInboundFiltersData, ListProjectCustomInboundFiltersErrors, ListProjectCustomInboundFiltersResponse, ListProjectCustomInboundFiltersResponses, ListProjectDebugFilesData, ListProjectDebugFilesErrors, ListProjectDebugFilesResponse, ListProjectDebugFilesResponse2, ListProjectDebugFilesResponses, ListProjectEnvironments, ListProjectEnvironmentsData, ListProjectEnvironmentsErrors, ListProjectEnvironmentsResponse, ListProjectEnvironmentsResponses, ListProjectEventAttachmentsData, ListProjectEventAttachmentsErrors, ListProjectEventAttachmentsResponse, ListProjectEventAttachmentsResponses, ListProjectEventsData, ListProjectEventsErrors, ListProjectEventsResponse, ListProjectEventsResponses, ListProjectFiltersData, ListProjectFiltersErrors, ListProjectFiltersResponse, ListProjectFiltersResponses, ListProjectHooksData, ListProjectHooksErrors, ListProjectHooksResponse, ListProjectHooksResponses, ListProjectIssuesData, ListProjectIssuesErrors, ListProjectIssuesResponse, ListProjectIssuesResponses, ListProjectKeysData, ListProjectKeysErrors, ListProjectKeysResponse, ListProjectKeysResponses, ListProjectMembersData, ListProjectMembersErrors, ListProjectMembersResponse, ListProjectMembersResponses, ListProjectMonitorCheckinsData, ListProjectMonitorCheckinsErrors, ListProjectMonitorCheckinsResponse, ListProjectMonitorCheckinsResponses, ListProjectReleaseCommitsData, ListProjectReleaseCommitsErrors, ListProjectReleaseCommitsResponse, ListProjectReleaseCommitsResponse2, ListProjectReleaseCommitsResponses, ListProjectReleaseFilesData, ListProjectReleaseFilesErrors, ListProjectReleaseFilesResponse, ListProjectReleaseFilesResponses, ListProjectReleasesData, ListProjectReleasesErrors, ListProjectReleasesResponse, ListProjectReleasesResponse2, ListProjectReleasesResponses, ListProjectReplayClicksData, ListProjectReplayClicksErrors, ListProjectReplayClicksResponse, ListProjectReplayClicksResponses, ListProjectReplayDeletionJobsData, ListProjectReplayDeletionJobsErrors, ListProjectReplayDeletionJobsResponse, ListProjectReplayDeletionJobsResponses, ListProjectReplayRecordingSegmentsData, ListProjectReplayRecordingSegmentsErrors, ListProjectReplayRecordingSegmentsResponse, ListProjectReplayRecordingSegmentsResponses, ListProjectReplayViewedByData, ListProjectReplayViewedByErrors, ListProjectReplayViewedByResponse, ListProjectReplayViewedByResponses, ListProjectRepositoriesData, ListProjectRepositoriesResponse, ListProjectRepositoriesResponses, ListProjectStatsData, ListProjectStatsErrors, ListProjectStatsResponse, ListProjectStatsResponses, ListProjectSymbolSourcesData, ListProjectSymbolSourcesErrors, ListProjectSymbolSourcesResponse, ListProjectSymbolSourcesResponses, ListProjectTagValuesData, ListProjectTagValuesErrors, ListProjectTagValuesResponse, ListProjectTagValuesResponses, ListProjectTeamsData, ListProjectTeamsErrors, ListProjectTeamsResponse, ListProjectTeamsResponses, ListProjectUserFeedbackData, ListProjectUserFeedbackErrors, ListProjectUserFeedbackResponse, ListProjectUserFeedbackResponses, ListProjectUsersData, ListProjectUsersErrors, ListProjectUsersResponse, ListProjectUsersResponse2, ListProjectUsersResponses, ListReleaseFiles, ListReleaseSetupSteps, ListReplayClicks, ListReplayDeletionJobs, ListReplayRecordingSegments, ListReplays, ListSeerModelsData, ListSeerModelsResponse, ListSeerModelsResponses, ListSelectors, ListStackCodeMappingPrefixesData, ListStackCodeMappingPrefixesErrors, ListStackCodeMappingPrefixesResponse, ListStackCodeMappingPrefixesResponses, ListTeamMembersData, ListTeamMembersErrors, ListTeamMembersResponse, ListTeamMembersResponses, ListTeamProjectResponse, ListTeamProjectsData, ListTeamProjectsErrors, ListTeamProjectsResponse, ListTeamProjectsResponses, ListTraceItemAttributesResponse, ListWorkflow, MappingItem, Monitor, MonitorList, MonitorValidator, NotificationAction, OrganizationCodeMappingResponse, OrganizationCodeOwnersAssociationsResponse, OrganizationConfigIntegrationsEndpointResponse, OrganizationDetailsPut, OrganizationEnvironmentResponse, OrganizationEventsDroppedResponse, OrganizationEventsResponseDict, OrganizationEventsTimeseriesResponse, OrganizationGroupIndexGetResponse, OrganizationGroupIndexPutResponse, OrganizationIntegrationResponse, OrganizationIssueView, OrganizationIssueViewList, OrganizationMember, OrganizationMemberRequest, OrganizationMemberRequestWritable, OrganizationMemberScim, OrganizationMemberTeam, OrganizationMemberTeamDetails, OrganizationMemberWithRoles, OrganizationProfilingChunksResponse, OrganizationProfilingFlamegraphResponse, OrganizationProjectResponseDict, OrganizationRelayResponse, OrganizationRelease, OrganizationRepositorySettingsResponse, OrganizationSentryAppDetailsResponse, OrganizationStatsSummaryResponse, OrganizationSummary, OrganizationTraceMetaResponse, OrganizationTraceResponse, OrganizationWithProjectsAndTeams, OrgReleaseResponse, OutcomesResponse, OutgoingNotificationAction, PlatformExternalIssueResponse, ProjectAdmin, ProjectCodeOwners, ProjectCodeOwnersCreateRequest, ProjectCodeOwnersList, ProjectCodeOwnersUpdateRequest, ProjectEventDetailsResponse, ProjectEventsResponseDict, ProjectFilterResponse, ProjectKey, ProjectKeyPost, ProjectOwnership, ProjectOwnershipRequest, ProjectPost, ProjectProfilingProfileResponse, ProjectRepoLinkRequest, ProjectRepoLinkResponse, ProjectRepoListResponse, ProjectSizeStatusCheckRulesResponse, ProjectSnapshotStatusCheckRulesResponse, ProjectStats, ProjectSummary, ProjectTeamsResponse, ProjectWithTeam, ProvisionOrganizationScimV2GroupData, ProvisionOrganizationScimV2GroupErrors, ProvisionOrganizationScimV2GroupResponse, ProvisionOrganizationScimV2GroupResponses, ProvisionOrganizationScimV2UserData, ProvisionOrganizationScimV2UserErrors, ProvisionOrganizationScimV2UserResponse, ProvisionOrganizationScimV2UserResponses, RateLimit, ReleaseFile, ReleaseFileResponse, ReleaseFileUpload, ReleaseHeadCommit, ReleaseHeadCommitSerializerDeprecated, ReleaseSerializerWithProjects, ReleaseThresholdStatusResponse, ReplayCounts, ReplayDeletionJobCreate, ReplayDeletionJobCreateData, RepositoryProjectPathConfig, RepositorySettings, ResolveOrganizationEventIdData, ResolveOrganizationEventIdErrors, ResolveOrganizationEventIdResponse, ResolveOrganizationEventIdResponses, ResolveOrganizationShortIdData, ResolveOrganizationShortIdErrors, ResolveOrganizationShortIdResponse, ResolveOrganizationShortIdResponses, RetrieveOrganizationAiConversationData, RetrieveOrganizationAiConversationErrors, RetrieveOrganizationAiConversationResponse, RetrieveOrganizationAiConversationResponse2, RetrieveOrganizationAiConversationResponses, RetrieveOrganizationFlagLogData, RetrieveOrganizationFlagLogErrors, RetrieveOrganizationFlagLogResponse, RetrieveOrganizationFlagLogResponses, RetrieveProjectCodeOwnersData, RetrieveProjectCodeOwnersErrors, RetrieveProjectCodeOwnersResponse, RetrieveProjectCodeOwnersResponses, ScimListResourceTypesResponse, ScimListResponseEnvelopeScimMemberIndexResponse, ScimListResponseEnvelopeScimTeamIndexResponse, ScimMemberProvision, ScimPatchOperation, ScimPatchRequest, ScimResourceTypeResponse, ScimSchemaResponse, ScimServiceProviderConfigResponse, ScimTeamPatchOperation, ScimTeamPatchRequest, ScimTeamRequestBody, SeerModelsResponse, SentryAppComponentsResponse, SentryAppDetailsResponse, SentryAppExternalRequestOptionsResponse, SentryAppInstallationExternalIssueActions, SentryAppParser, SessionsQueryResult, ShortIdLookupResponse, SizeAnalysisResponse, SkipStatusCheck, SnapshotCreateResponse, SnapshotDetailsResponse, SnapshotImageDetailResponse, Source, SourceMapDebug, StackPrefixesResponse, StacktraceLinkResponse, StarOrganizationServiceSpanData, StarOrganizationServiceSpanErrors, StarOrganizationServiceSpanResponses, StarSegment, StartOrganizationIssueAutofixData, StartOrganizationIssueAutofixErrors, StartOrganizationIssueAutofixResponse, StartOrganizationIssueAutofixResponses, StatusDetailsValidator, TagKeyDetailsDict, TagKeyValuesDict, Team, TeamDetails, TeamPost, TeamScim, TraceItemStatsResponse, UnstarOrganizationServiceSpanData, UnstarOrganizationServiceSpanErrors, UnstarOrganizationServiceSpanResponses, UpdateClientKey, UpdateOrganizationCodeMappingData, UpdateOrganizationCodeMappingErrors, UpdateOrganizationCodeMappingResponse, UpdateOrganizationCodeMappingResponses, UpdateOrganizationDashboardData, UpdateOrganizationDashboardErrors, UpdateOrganizationDashboardResponse, UpdateOrganizationDashboardResponses, UpdateOrganizationData, UpdateOrganizationDetectorData, UpdateOrganizationDetectorErrors, UpdateOrganizationDetectorResponse, UpdateOrganizationDetectorResponses, UpdateOrganizationDetectorsData, UpdateOrganizationDetectorsErrors, UpdateOrganizationDetectorsResponse, UpdateOrganizationDetectorsResponses, UpdateOrganizationDiscoverSavedQueryData, UpdateOrganizationDiscoverSavedQueryErrors, UpdateOrganizationDiscoverSavedQueryResponse, UpdateOrganizationDiscoverSavedQueryResponses, UpdateOrganizationErrors, UpdateOrganizationExternalUserData, UpdateOrganizationExternalUserErrors, UpdateOrganizationExternalUserResponse, UpdateOrganizationExternalUserResponses, UpdateOrganizationForwardingData, UpdateOrganizationForwardingErrors, UpdateOrganizationForwardingResponse, UpdateOrganizationForwardingResponses, UpdateOrganizationIssueData, UpdateOrganizationIssueErrors, UpdateOrganizationIssueIntegrationData, UpdateOrganizationIssueIntegrationError, UpdateOrganizationIssueIntegrationErrors, UpdateOrganizationIssueIntegrationResponse, UpdateOrganizationIssueIntegrationResponses, UpdateOrganizationIssueResponse, UpdateOrganizationIssueResponses, UpdateOrganizationIssuesData, UpdateOrganizationIssuesErrors, UpdateOrganizationIssuesResponse, UpdateOrganizationIssuesResponses, UpdateOrganizationMemberData, UpdateOrganizationMemberErrors, UpdateOrganizationMemberResponse, UpdateOrganizationMemberResponses, UpdateOrganizationMemberTeamData, UpdateOrganizationMemberTeamErrors, UpdateOrganizationMemberTeamResponse, UpdateOrganizationMemberTeamResponses, UpdateOrganizationMonitorData, UpdateOrganizationMonitorErrors, UpdateOrganizationMonitorResponse, UpdateOrganizationMonitorResponses, UpdateOrganizationNotificationsActionData, UpdateOrganizationNotificationsActionErrors, UpdateOrganizationNotificationsActionResponse, UpdateOrganizationNotificationsActionResponses, UpdateOrganizationReleaseData, UpdateOrganizationReleaseErrors, UpdateOrganizationReleaseFileData, UpdateOrganizationReleaseFileErrors, UpdateOrganizationReleaseFileResponse, UpdateOrganizationReleaseFileResponses, UpdateOrganizationReleaseResponse, UpdateOrganizationReleaseResponses, UpdateOrganizationRepositorySettingsData, UpdateOrganizationRepositorySettingsErrors, UpdateOrganizationRepositorySettingsResponse, UpdateOrganizationRepositorySettingsResponses, UpdateOrganizationResponse, UpdateOrganizationResponses, UpdateOrganizationScimV2GroupData, UpdateOrganizationScimV2GroupErrors, UpdateOrganizationScimV2GroupResponse, UpdateOrganizationScimV2GroupResponses, UpdateOrganizationScimV2UserData, UpdateOrganizationScimV2UserErrors, UpdateOrganizationScimV2UserResponse, UpdateOrganizationScimV2UserResponses, UpdateOrganizationWorkflowData, UpdateOrganizationWorkflowErrors, UpdateOrganizationWorkflowResponse, UpdateOrganizationWorkflowResponses, UpdateOrganizationWorkflowsData, UpdateOrganizationWorkflowsErrors, UpdateOrganizationWorkflowsResponse, UpdateOrganizationWorkflowsResponses, UpdateOrgMemberRoles, UpdateProjectCodeOwnersData, UpdateProjectCodeOwnersErrors, UpdateProjectCodeOwnersResponse, UpdateProjectCodeOwnersResponses, UpdateProjectCustomInboundFilterData, UpdateProjectCustomInboundFilterErrors, UpdateProjectCustomInboundFilterResponse, UpdateProjectCustomInboundFilterResponses, UpdateProjectData, UpdateProjectEnvironmentData, UpdateProjectEnvironmentErrors, UpdateProjectEnvironmentResponse, UpdateProjectEnvironmentResponses, UpdateProjectEnvironmentsData, UpdateProjectEnvironmentsErrors, UpdateProjectEnvironmentsResponse, UpdateProjectEnvironmentsResponses, UpdateProjectErrors, UpdateProjectFilterData, UpdateProjectFilterErrors, UpdateProjectFilterResponse, UpdateProjectFilterResponses, UpdateProjectHookData, UpdateProjectHookErrors, UpdateProjectHookResponse, UpdateProjectHookResponses, UpdateProjectIssuesData, UpdateProjectIssuesErrors, UpdateProjectIssuesResponse, UpdateProjectIssuesResponses, UpdateProjectKeyData, UpdateProjectKeyErrors, UpdateProjectKeyResponse, UpdateProjectKeyResponses, UpdateProjectMonitorData, UpdateProjectMonitorErrors, UpdateProjectMonitorResponse, UpdateProjectMonitorResponses, UpdateProjectOwnershipData, UpdateProjectOwnershipErrors, UpdateProjectOwnershipResponse, UpdateProjectOwnershipResponses, UpdateProjectReleaseFileData, UpdateProjectReleaseFileErrors, UpdateProjectReleaseFileResponse, UpdateProjectReleaseFileResponses, UpdateProjectResponse, UpdateProjectResponses, UpdateProjectSymbolSourceData, UpdateProjectSymbolSourceErrors, UpdateProjectSymbolSourceResponse, UpdateProjectSymbolSourceResponses, UpdateSentryAppData, UpdateSentryAppErrors, UpdateSentryAppResponse, UpdateSentryAppResponses, UpdateTeamData, UpdateTeamErrors, UpdateTeamExternalTeamData, UpdateTeamExternalTeamErrors, UpdateTeamExternalTeamResponse, UpdateTeamExternalTeamResponses, UpdateTeamResponse, UpdateTeamResponses, UploadOrganizationChunksData, UploadOrganizationChunksErrors, UploadOrganizationChunksResponses, UploadOrganizationReleaseFileData, UploadOrganizationReleaseFileErrors, UploadOrganizationReleaseFileResponse, UploadOrganizationReleaseFileResponses, UploadProjectPreprodArtifactSnapshotData, UploadProjectPreprodArtifactSnapshotErrors, UploadProjectPreprodArtifactSnapshotResponse, UploadProjectPreprodArtifactSnapshotResponses, UploadProjectReleaseFileData, UploadProjectReleaseFileErrors, UploadProjectReleaseFileResponse, UploadProjectReleaseFileResponses, ValidateOrganizationIntegrationChannelData, ValidateOrganizationIntegrationChannelErrors, ValidateOrganizationIntegrationChannelResponse, ValidateOrganizationIntegrationChannelResponses, WidgetLayout, Workflow, WorkflowValidator } from './types.gen';
|
|
3
3
|
export { callWithTypedErrors, narrowError, SentryApiError } from './sentry-errors.ts';
|
|
4
4
|
export type { DocumentedSentryApiError, NarrowedResult, SentryApiResultError, SentryApiTransportError, SdkResult, UndocumentedSentryApiError } from './sentry-errors.ts';
|
|
5
|
-
export { parseSentryLinkHeader, unwrapResult, unwrapPaginatedResult, fetchPage, paginateAll, paginateUpTo } from './sentry-pagination.ts';
|
|
6
|
-
export type { UnwrappedResult, PaginatedResponse, PaginatedCollection, PaginateAllOptions, PaginateUpToOptions, PageFetcher, BudgetedPageFetcher } from './sentry-pagination.ts';
|
|
5
|
+
export { parseSentryLinkHeader, unwrapResult, unwrapPaginatedResult, fetchPage, paginateAll, paginateUpTo, consumePage } from './sentry-pagination.ts';
|
|
6
|
+
export type { UnwrappedResult, PaginatedResponse, PaginatedCollection, PaginateAllOptions, PaginateUpToOptions, PageFetcher, BudgetedPageFetcher, CollectionPage, CollectionPageFetcher, PagePosition, PaginationContinuation } from './sentry-pagination.ts';
|
|
7
7
|
export * from './error-results.gen.ts';
|
|
8
8
|
export type * from './query-enums.gen.ts';
|
|
9
9
|
export * from './pagination.gen.ts';
|
package/dist/index.js
CHANGED
|
@@ -2540,6 +2540,32 @@ function assertPositiveInteger(value, name) {
|
|
|
2540
2540
|
throw new Error(`${name} must be a positive safe integer, got ${value}`);
|
|
2541
2541
|
}
|
|
2542
2542
|
}
|
|
2543
|
+
function assertPagePosition(position) {
|
|
2544
|
+
if (!Number.isSafeInteger(position.offset) || position.offset < 0) {
|
|
2545
|
+
throw new Error(`pagination: offset must be a non-negative safe integer, got ${position.offset}`);
|
|
2546
|
+
}
|
|
2547
|
+
if (position.cursor !== undefined && typeof position.cursor !== "string") {
|
|
2548
|
+
throw new Error("pagination: cursor must be a string");
|
|
2549
|
+
}
|
|
2550
|
+
}
|
|
2551
|
+
function consumePage(page, position, limit = Number.POSITIVE_INFINITY) {
|
|
2552
|
+
assertPagePosition(position);
|
|
2553
|
+
if (limit !== Number.POSITIVE_INFINITY && (!Number.isSafeInteger(limit) || limit < 0)) {
|
|
2554
|
+
throw new Error(`consumePage: limit must be a non-negative safe integer, got ${limit}`);
|
|
2555
|
+
}
|
|
2556
|
+
const end = Math.min(page.data.length, position.offset + limit);
|
|
2557
|
+
const data = page.data.slice(position.offset, end);
|
|
2558
|
+
if (end < page.data.length) {
|
|
2559
|
+
return { data, position: { ...position, offset: end } };
|
|
2560
|
+
}
|
|
2561
|
+
if (page.nextCursor !== undefined) {
|
|
2562
|
+
return {
|
|
2563
|
+
data,
|
|
2564
|
+
position: { cursor: page.nextCursor, offset: Math.max(0, position.offset - page.data.length) }
|
|
2565
|
+
};
|
|
2566
|
+
}
|
|
2567
|
+
return { data };
|
|
2568
|
+
}
|
|
2543
2569
|
var parseSentryLinkHeader = (header) => {
|
|
2544
2570
|
if (!header) {
|
|
2545
2571
|
return {};
|
|
@@ -2649,26 +2675,48 @@ var paginateUpTo = async (fetcher, options, context) => {
|
|
|
2649
2675
|
assertPositiveInteger(options.limit, "paginateUpTo: limit");
|
|
2650
2676
|
const maxPages = options.maxPages ?? 50;
|
|
2651
2677
|
assertPositiveInteger(maxPages, "paginateUpTo: maxPages");
|
|
2678
|
+
if (options.resume !== undefined && options.startCursor !== undefined) {
|
|
2679
|
+
throw new Error("paginateUpTo: use either resume or startCursor, not both");
|
|
2680
|
+
}
|
|
2681
|
+
if (options.resume !== undefined) {
|
|
2682
|
+
assertPagePosition(options.resume);
|
|
2683
|
+
if (options.resume.offset > 0 || options.resume.requestBudget !== undefined) {
|
|
2684
|
+
assertPositiveInteger(options.resume.requestBudget, "paginateUpTo: resume.requestBudget");
|
|
2685
|
+
}
|
|
2686
|
+
}
|
|
2652
2687
|
const allItems = [];
|
|
2653
|
-
let
|
|
2688
|
+
let position = options.resume ?? { cursor: options.startCursor, offset: 0 };
|
|
2689
|
+
let replayBudget = options.resume?.offset ? options.resume.requestBudget : undefined;
|
|
2690
|
+
let continuation;
|
|
2654
2691
|
for (let page = 0;page < maxPages; page++) {
|
|
2655
2692
|
const remaining = options.limit - allItems.length;
|
|
2656
|
-
const
|
|
2657
|
-
const
|
|
2658
|
-
|
|
2693
|
+
const requestBudget = replayBudget ?? remaining;
|
|
2694
|
+
const result = await fetcher(position.cursor, requestBudget);
|
|
2695
|
+
const { data, nextCursor } = result.request !== undefined ? unwrapPaginatedResult(result, context) : result;
|
|
2696
|
+
const consumed = consumePage({ data, nextCursor }, position, remaining);
|
|
2697
|
+
allItems.push(...consumed.data);
|
|
2659
2698
|
options.onPage?.(allItems.length, options.limit);
|
|
2660
|
-
if (
|
|
2661
|
-
return { data: allItems, stopReason: "limit" };
|
|
2662
|
-
}
|
|
2663
|
-
if (nextCursor === undefined) {
|
|
2699
|
+
if (consumed.position === undefined) {
|
|
2664
2700
|
return { data: allItems, stopReason: "exhausted" };
|
|
2665
2701
|
}
|
|
2702
|
+
position = consumed.position;
|
|
2703
|
+
continuation = position.offset === 0 ? { ...position, offset: 0 } : { ...position, requestBudget };
|
|
2666
2704
|
if (allItems.length === options.limit) {
|
|
2667
|
-
return {
|
|
2705
|
+
return {
|
|
2706
|
+
data: allItems,
|
|
2707
|
+
stopReason: "limit",
|
|
2708
|
+
...position.offset === 0 && position.cursor !== undefined ? { nextCursor: position.cursor } : {},
|
|
2709
|
+
continuation
|
|
2710
|
+
};
|
|
2668
2711
|
}
|
|
2669
|
-
|
|
2712
|
+
replayBudget = position.offset > 0 ? requestBudget : undefined;
|
|
2670
2713
|
}
|
|
2671
|
-
return {
|
|
2714
|
+
return {
|
|
2715
|
+
data: allItems,
|
|
2716
|
+
stopReason: "maxPages",
|
|
2717
|
+
...position.offset === 0 && position.cursor !== undefined ? { nextCursor: position.cursor } : {},
|
|
2718
|
+
continuation
|
|
2719
|
+
};
|
|
2672
2720
|
};
|
|
2673
2721
|
// src/error-results.gen.ts
|
|
2674
2722
|
var narrowError_addOrganizationMember = async (options) => callWithTypedErrors(() => addOrganizationMember({ ...options, responseStyle: "fields", throwOnError: false }), [401, 403, 404]);
|
|
@@ -4170,6 +4218,7 @@ export {
|
|
|
4170
4218
|
createOrganizationDiscoverSavedQuery,
|
|
4171
4219
|
createOrganizationDashboard,
|
|
4172
4220
|
createOrganizationCodeMapping,
|
|
4221
|
+
consumePage,
|
|
4173
4222
|
callWithTypedErrors,
|
|
4174
4223
|
bulkUpsertOrganizationCodeMappings,
|
|
4175
4224
|
assembleProjectDebugFiles,
|
|
@@ -19,12 +19,32 @@ export type PaginatedResponse<T> = {
|
|
|
19
19
|
/** Cursor for the previous page. `undefined` on the first page. */
|
|
20
20
|
prevCursor?: string;
|
|
21
21
|
};
|
|
22
|
+
/** A position within a page fetched with an opaque server cursor. */
|
|
23
|
+
export type PagePosition = {
|
|
24
|
+
readonly cursor?: string;
|
|
25
|
+
/** Rows already consumed, before applying the next item budget. */
|
|
26
|
+
readonly offset: number;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Serializable continuation returned by `paginateUpTo`.
|
|
30
|
+
* Keep the same operation, query and fetcher configuration when resuming.
|
|
31
|
+
* Partial pages retain the fetcher's original request budget for exact replay;
|
|
32
|
+
* page boundaries use the next call's budget instead.
|
|
33
|
+
*/
|
|
34
|
+
export type PaginationContinuation = PagePosition & ({
|
|
35
|
+
readonly offset: 0;
|
|
36
|
+
readonly requestBudget?: never;
|
|
37
|
+
} | {
|
|
38
|
+
readonly requestBudget: number;
|
|
39
|
+
});
|
|
22
40
|
/** Aggregate data has no single HTTP response. Only `exhausted` means complete. */
|
|
23
41
|
export type PaginatedCollection<TItem> = {
|
|
24
42
|
data: Array<TItem>;
|
|
25
43
|
stopReason: "exhausted" | "limit" | "maxPages";
|
|
26
44
|
/** Omitted when exhausted or when trimming a page makes continuation unsafe. */
|
|
27
45
|
nextCursor?: string;
|
|
46
|
+
/** `paginateUpTo` can resume here, including within a partially consumed page. */
|
|
47
|
+
continuation?: PaginationContinuation;
|
|
28
48
|
};
|
|
29
49
|
export type PaginateAllOptions = {
|
|
30
50
|
/** Hard cap on the number of pages fetched. Default: 50. */
|
|
@@ -39,12 +59,42 @@ export type PaginateUpToOptions = {
|
|
|
39
59
|
maxPages?: number;
|
|
40
60
|
/** Resume forward traversal from a previous nextCursor, keeping the same query. */
|
|
41
61
|
startCursor?: string;
|
|
62
|
+
/** Resume a batch, including pending rows in its last page. Cannot combine with startCursor. */
|
|
63
|
+
resume?: PaginationContinuation;
|
|
42
64
|
/** Called after each page is fetched. Useful for progress indicators. */
|
|
43
65
|
onPage?: (fetched: number, limit: number) => void;
|
|
44
66
|
};
|
|
45
67
|
export type PageFetcher<TData, TError> = (cursor: string | undefined) => Promise<SdkResult<TData, TError>>;
|
|
46
|
-
/**
|
|
47
|
-
|
|
68
|
+
/**
|
|
69
|
+
* The request budget lets a custom fetcher reduce its HTTP page size.
|
|
70
|
+
* Normally the remaining item budget; replaying a partial page repeats the
|
|
71
|
+
* original value even when the new batch has a different limit.
|
|
72
|
+
*/
|
|
73
|
+
export type BudgetedPageFetcher<TData, TError> = (cursor: string | undefined, requestBudget: number) => Promise<SdkResult<TData, TError>>;
|
|
74
|
+
/** A page whose consumer already handled the HTTP response and any errors. */
|
|
75
|
+
export type CollectionPage<TItem> = {
|
|
76
|
+
data: Array<TItem>;
|
|
77
|
+
nextCursor?: string;
|
|
78
|
+
/** Reserved for SDK operation envelopes; normalized fetchers reject on failure. */
|
|
79
|
+
request?: never;
|
|
80
|
+
error?: never;
|
|
81
|
+
};
|
|
82
|
+
/** Compose an existing page fetcher with bounded collection, without HTTP objects. */
|
|
83
|
+
export type CollectionPageFetcher<TItem> = (cursor: string | undefined, requestBudget: number) => Promise<CollectionPage<TItem>>;
|
|
84
|
+
/**
|
|
85
|
+
* Consume rows from an already fetched page without fetching or interpreting cursors.
|
|
86
|
+
* Returns a position for the next consumption, or none when the page is fully
|
|
87
|
+
* consumed and the server advertises no next page. The caller retains the
|
|
88
|
+
* original response, headers and envelope; neither input is mutated.
|
|
89
|
+
*
|
|
90
|
+
* A position inside the current page requires fetching that page again with
|
|
91
|
+
* the same request options. An offset beyond a short page carries forward to
|
|
92
|
+
* its successor. Like server pagination, this does not snapshot changing data.
|
|
93
|
+
*/
|
|
94
|
+
export declare function consumePage<T>(page: Pick<PaginatedResponse<Array<T>>, "data" | "nextCursor">, position: PagePosition, limit?: number): {
|
|
95
|
+
data: Array<T>;
|
|
96
|
+
position?: PagePosition;
|
|
97
|
+
};
|
|
48
98
|
/**
|
|
49
99
|
* Parse Sentry's Link header to extract pagination cursors.
|
|
50
100
|
*
|
|
@@ -143,11 +193,12 @@ export declare const fetchPage: <TData, TError = unknown>(fetcher: PageFetcher<T
|
|
|
143
193
|
*/
|
|
144
194
|
export declare const paginateAll: <TItem, TError = unknown>(fetcher: PageFetcher<Array<TItem>, TError>, context: string, options?: PaginateAllOptions) => Promise<PaginatedCollection<TItem>>;
|
|
145
195
|
/**
|
|
146
|
-
* Collect up to `limit` items, passing
|
|
147
|
-
* Generated wrappers use it to reduce supported HTTP page sizes.
|
|
196
|
+
* Collect up to `limit` items, passing a request budget to the fetcher.
|
|
197
|
+
* Generated wrappers use it to reduce supported HTTP page sizes. A partial
|
|
198
|
+
* continuation replays the original request budget before skipping consumed rows.
|
|
148
199
|
*
|
|
149
200
|
* If a server still returns more items than fit, trim the page and omit its
|
|
150
|
-
* cursor: resuming past discarded items would skip records.
|
|
151
|
-
*
|
|
201
|
+
* server cursor: resuming past discarded items would skip records. The separate
|
|
202
|
+
* continuation preserves the pending rows, even if the server has no further pages.
|
|
152
203
|
*/
|
|
153
|
-
export declare const paginateUpTo: <TItem, TError = unknown>(fetcher: BudgetedPageFetcher<Array<TItem>, TError>, options: PaginateUpToOptions, context: string) => Promise<PaginatedCollection<TItem>>;
|
|
204
|
+
export declare const paginateUpTo: <TItem, TError = unknown>(fetcher: BudgetedPageFetcher<Array<TItem>, TError> | CollectionPageFetcher<TItem>, options: PaginateUpToOptions, context: string) => Promise<PaginatedCollection<TItem>>;
|