@sentry/api 0.334.0 → 0.336.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.
@@ -1310,6 +1310,75 @@ export type CreateReplayDeletionJob = {
1310
1310
  countDeleted: number;
1311
1311
  };
1312
1312
  };
1313
+ export type CustomInboundFilter = {
1314
+ /**
1315
+ * The ID of the filter.
1316
+ */
1317
+ readonly id: string;
1318
+ /**
1319
+ * The data the filter matches against. `all` is the catch-all: it filters every data type Sentry ingests, including ones added later, and accepts only the conditions that every data type carries a field for.
1320
+ *
1321
+ * * `all`
1322
+ * * `error`
1323
+ * * `log`
1324
+ * * `metric`
1325
+ * * `span`
1326
+ */
1327
+ dataType: 'all' | 'error' | 'log' | 'metric' | 'span';
1328
+ /**
1329
+ * Conditions are combined with AND: an event must match every condition to be filtered out. There is no OR between conditions, so e.g. two release conditions can express a range (`>2 AND <4`). To broaden matching, widen a condition's values or add separate filters.
1330
+ */
1331
+ conditions: Array<{
1332
+ /**
1333
+ * The field the condition matches against. Every `dataType` accepts `release` and `ip_address`. In addition, `error` accepts `error_type` and `error_message`, `log` accepts `log_message`, and `metric` accepts `metric_name`. `span` and `all` accept no other types.
1334
+ *
1335
+ * * `error_type`
1336
+ * * `error_message`
1337
+ * * `log_message`
1338
+ * * `metric_name`
1339
+ * * `release`
1340
+ * * `ip_address`
1341
+ */
1342
+ type: 'error_type' | 'error_message' | 'log_message' | 'metric_name' | 'release' | 'ip_address';
1343
+ /**
1344
+ * Glob patterns the field is matched against. The condition matches when any pattern matches, so multiple values act as OR.
1345
+ */
1346
+ value: Array<string>;
1347
+ }>;
1348
+ /**
1349
+ * When the filter was created.
1350
+ */
1351
+ readonly dateCreated: string;
1352
+ /**
1353
+ * When the filter was last changed.
1354
+ */
1355
+ readonly dateUpdated: string;
1356
+ /**
1357
+ * A human-readable label for the filter.
1358
+ */
1359
+ name?: string | null;
1360
+ /**
1361
+ * Whether the filter drops matching data. An inactive filter is kept but ignored.
1362
+ */
1363
+ active?: boolean;
1364
+ };
1365
+ export type CustomInboundFilterCondition = {
1366
+ /**
1367
+ * The field the condition matches against. Every `dataType` accepts `release` and `ip_address`. In addition, `error` accepts `error_type` and `error_message`, `log` accepts `log_message`, and `metric` accepts `metric_name`. `span` and `all` accept no other types.
1368
+ *
1369
+ * * `error_type`
1370
+ * * `error_message`
1371
+ * * `log_message`
1372
+ * * `metric_name`
1373
+ * * `release`
1374
+ * * `ip_address`
1375
+ */
1376
+ type: 'error_type' | 'error_message' | 'log_message' | 'metric_name' | 'release' | 'ip_address';
1377
+ /**
1378
+ * Glob patterns the field is matched against. The condition matches when any pattern matches, so multiple values act as OR.
1379
+ */
1380
+ value: Array<string>;
1381
+ };
1313
1382
  /**
1314
1383
  * Allows parameters to be defined in snake case, but passed as camel case.
1315
1384
  *
@@ -4173,6 +4242,17 @@ export type IssueIntegrationsResponse = Array<{
4173
4242
  displayName: string;
4174
4243
  }>;
4175
4244
  }>;
4245
+ /**
4246
+ * DRF's standard error-body shape: `{"detail": str}`.
4247
+ *
4248
+ * Use in `Response[T] | Response[DetailResponse]` annotations on endpoints
4249
+ * whose inline error returns are exactly `Response({"detail": "..."}, status=4xx)`.
4250
+ * Endpoints whose error bodies have richer or different shapes should
4251
+ * declare their own local TypedDicts instead.
4252
+ */
4253
+ export type IssueLinkConflict = {
4254
+ detail: string;
4255
+ };
4176
4256
  export type LatestBaseSnapshotResponse = {
4177
4257
  head_artifact_id?: string;
4178
4258
  project_id?: string;
@@ -4730,20 +4810,22 @@ export type ListOrgTeamResponse = Array<{
4730
4810
  }>;
4731
4811
  }>;
4732
4812
  export type ListOrganizationAiConversationsResponse = Array<{
4813
+ endTimestamp: number;
4814
+ generationDuration: number;
4815
+ inputTokens: number;
4816
+ llmCalls: number;
4817
+ outputTokens: number;
4818
+ startTimestamp: number;
4819
+ toolCalls: number;
4820
+ toolErrors: number;
4821
+ toolNames: Array<string>;
4822
+ totalCost: number;
4823
+ totalTokens: number;
4733
4824
  conversationId: string;
4825
+ errors: number;
4734
4826
  title: string | null;
4735
4827
  projectId: number | null;
4736
4828
  flow: Array<string>;
4737
- errors: number;
4738
- llmCalls: number;
4739
- toolCalls: number;
4740
- totalTokens: number;
4741
- inputTokens: number;
4742
- outputTokens: number;
4743
- totalCost: number;
4744
- generationDuration: number;
4745
- startTimestamp: number;
4746
- endTimestamp: number;
4747
4829
  traceCount: number;
4748
4830
  traceIds: Array<string>;
4749
4831
  firstInput: string | null;
@@ -4754,8 +4836,6 @@ export type ListOrganizationAiConversationsResponse = Array<{
4754
4836
  username: string | null;
4755
4837
  ip_address: string | null;
4756
4838
  } | null;
4757
- toolNames: Array<string>;
4758
- toolErrors: number;
4759
4839
  projects: Array<{
4760
4840
  id: number;
4761
4841
  name: string;
@@ -7191,9 +7271,14 @@ export type OrganizationEventsTimeseriesResponse = {
7191
7271
  eventCount: number;
7192
7272
  byteSize?: number;
7193
7273
  }>;
7194
- estimatedIngestionDelaySeconds?: number;
7195
- completeThrough?: number;
7196
- ingestionDelayStatus?: string;
7274
+ /**
7275
+ * Ingestion status for the data behind a response.
7276
+ */
7277
+ ingestion?: {
7278
+ status: string;
7279
+ delaySeconds?: number;
7280
+ completeThrough?: number;
7281
+ };
7197
7282
  };
7198
7283
  timeSeries: Array<{
7199
7284
  values: Array<{
@@ -9307,6 +9392,15 @@ export type ProjectRepoLinkResponse = {
9307
9392
  source: string;
9308
9393
  created: boolean;
9309
9394
  };
9395
+ export type ProjectRepoListResponse = Array<{
9396
+ id: string;
9397
+ projectId: string;
9398
+ repositoryId: string;
9399
+ repoName: string;
9400
+ source: string;
9401
+ providerKey: string | null;
9402
+ mappingCount?: number;
9403
+ }>;
9310
9404
  export type ProjectSizeStatusCheckRulesResponse = {
9311
9405
  enabled: boolean;
9312
9406
  rules: Array<{
@@ -9658,6 +9752,31 @@ export type RetrieveOrganizationAiConversationResponse = {
9658
9752
  spans: Array<{
9659
9753
  [key: string]: unknown;
9660
9754
  }>;
9755
+ stats: {
9756
+ endTimestamp: number;
9757
+ generationDuration: number;
9758
+ inputTokens: number;
9759
+ llmCalls: number;
9760
+ outputTokens: number;
9761
+ startTimestamp: number;
9762
+ toolCalls: number;
9763
+ toolErrors: number;
9764
+ toolNames: Array<string>;
9765
+ totalCost: number;
9766
+ totalTokens: number;
9767
+ usageByModel: Array<{
9768
+ model: string | null;
9769
+ inputTokens: number;
9770
+ outputTokens: number;
9771
+ totalTokens: number;
9772
+ cacheReadTokens: number;
9773
+ cacheWriteTokens: number;
9774
+ reasoningTokens: number;
9775
+ inputCost: number;
9776
+ outputCost: number;
9777
+ totalCost: number;
9778
+ }>;
9779
+ };
9661
9780
  };
9662
9781
  export type ScimListResponseEnvelopeScimMemberIndexResponse = {
9663
9782
  schemas: Array<string>;
@@ -11814,6 +11933,46 @@ export type LegacyBrowserFilter = {
11814
11933
  */
11815
11934
  subfilters?: Array<'ie' | 'edge' | 'safari' | 'firefox' | 'chrome' | 'opera' | 'android' | 'opera_mini' | 'ie_pre_9' | 'ie9' | 'ie10' | 'ie11' | 'opera_pre_15' | 'android_pre_4' | 'safari_pre_6' | 'opera_mini_pre_8' | 'edge_pre_79'>;
11816
11935
  };
11936
+ export type CustomInboundFilterWritable = {
11937
+ /**
11938
+ * The data the filter matches against. `all` is the catch-all: it filters every data type Sentry ingests, including ones added later, and accepts only the conditions that every data type carries a field for.
11939
+ *
11940
+ * * `all`
11941
+ * * `error`
11942
+ * * `log`
11943
+ * * `metric`
11944
+ * * `span`
11945
+ */
11946
+ dataType: 'all' | 'error' | 'log' | 'metric' | 'span';
11947
+ /**
11948
+ * Conditions are combined with AND: an event must match every condition to be filtered out. There is no OR between conditions, so e.g. two release conditions can express a range (`>2 AND <4`). To broaden matching, widen a condition's values or add separate filters.
11949
+ */
11950
+ conditions: Array<{
11951
+ /**
11952
+ * The field the condition matches against. Every `dataType` accepts `release` and `ip_address`. In addition, `error` accepts `error_type` and `error_message`, `log` accepts `log_message`, and `metric` accepts `metric_name`. `span` and `all` accept no other types.
11953
+ *
11954
+ * * `error_type`
11955
+ * * `error_message`
11956
+ * * `log_message`
11957
+ * * `metric_name`
11958
+ * * `release`
11959
+ * * `ip_address`
11960
+ */
11961
+ type: 'error_type' | 'error_message' | 'log_message' | 'metric_name' | 'release' | 'ip_address';
11962
+ /**
11963
+ * Glob patterns the field is matched against. The condition matches when any pattern matches, so multiple values act as OR.
11964
+ */
11965
+ value: Array<string>;
11966
+ }>;
11967
+ /**
11968
+ * A human-readable label for the filter.
11969
+ */
11970
+ name?: string | null;
11971
+ /**
11972
+ * Whether the filter drops matching data. An inactive filter is kept but ignored.
11973
+ */
11974
+ active?: boolean;
11975
+ };
11817
11976
  /**
11818
11977
  * Allows parameters to be defined in snake case, but passed as camel case.
11819
11978
  *
@@ -12670,20 +12829,22 @@ export type ListOrganizationAiConversationsErrors = {
12670
12829
  };
12671
12830
  export type ListOrganizationAiConversationsResponses = {
12672
12831
  200: Array<{
12832
+ endTimestamp: number;
12833
+ generationDuration: number;
12834
+ inputTokens: number;
12835
+ llmCalls: number;
12836
+ outputTokens: number;
12837
+ startTimestamp: number;
12838
+ toolCalls: number;
12839
+ toolErrors: number;
12840
+ toolNames: Array<string>;
12841
+ totalCost: number;
12842
+ totalTokens: number;
12673
12843
  conversationId: string;
12844
+ errors: number;
12674
12845
  title: string | null;
12675
12846
  projectId: number | null;
12676
12847
  flow: Array<string>;
12677
- errors: number;
12678
- llmCalls: number;
12679
- toolCalls: number;
12680
- totalTokens: number;
12681
- inputTokens: number;
12682
- outputTokens: number;
12683
- totalCost: number;
12684
- generationDuration: number;
12685
- startTimestamp: number;
12686
- endTimestamp: number;
12687
12848
  traceCount: number;
12688
12849
  traceIds: Array<string>;
12689
12850
  firstInput: string | null;
@@ -12694,8 +12855,6 @@ export type ListOrganizationAiConversationsResponses = {
12694
12855
  username: string | null;
12695
12856
  ip_address: string | null;
12696
12857
  } | null;
12697
- toolNames: Array<string>;
12698
- toolErrors: number;
12699
12858
  projects: Array<{
12700
12859
  id: number;
12701
12860
  name: string;
@@ -12795,6 +12954,31 @@ export type RetrieveOrganizationAiConversationResponses = {
12795
12954
  spans: Array<{
12796
12955
  [key: string]: unknown;
12797
12956
  }>;
12957
+ stats: {
12958
+ endTimestamp: number;
12959
+ generationDuration: number;
12960
+ inputTokens: number;
12961
+ llmCalls: number;
12962
+ outputTokens: number;
12963
+ startTimestamp: number;
12964
+ toolCalls: number;
12965
+ toolErrors: number;
12966
+ toolNames: Array<string>;
12967
+ totalCost: number;
12968
+ totalTokens: number;
12969
+ usageByModel: Array<{
12970
+ model: string | null;
12971
+ inputTokens: number;
12972
+ outputTokens: number;
12973
+ totalTokens: number;
12974
+ cacheReadTokens: number;
12975
+ cacheWriteTokens: number;
12976
+ reasoningTokens: number;
12977
+ inputCost: number;
12978
+ outputCost: number;
12979
+ totalCost: number;
12980
+ }>;
12981
+ };
12798
12982
  };
12799
12983
  };
12800
12984
  export type RetrieveOrganizationAiConversationResponse2 = RetrieveOrganizationAiConversationResponses[keyof RetrieveOrganizationAiConversationResponses];
@@ -15646,9 +15830,14 @@ export type ListOrganizationEventsTimeseriesResponses = {
15646
15830
  eventCount: number;
15647
15831
  byteSize?: number;
15648
15832
  }>;
15649
- estimatedIngestionDelaySeconds?: number;
15650
- completeThrough?: number;
15651
- ingestionDelayStatus?: string;
15833
+ /**
15834
+ * Ingestion status for the data behind a response.
15835
+ */
15836
+ ingestion?: {
15837
+ status: string;
15838
+ delaySeconds?: number;
15839
+ completeThrough?: number;
15840
+ };
15652
15841
  };
15653
15842
  timeSeries: Array<{
15654
15843
  values: Array<{
@@ -29306,6 +29495,492 @@ export type UpdateProjectCodeOwnersResponses = {
29306
29495
  };
29307
29496
  };
29308
29497
  export type UpdateProjectCodeOwnersResponse = UpdateProjectCodeOwnersResponses[keyof UpdateProjectCodeOwnersResponses];
29498
+ export type ListProjectCustomInboundFiltersData = {
29499
+ body?: never;
29500
+ path: {
29501
+ /**
29502
+ * The ID or slug of the organization the resource belongs to.
29503
+ */
29504
+ organization_id_or_slug: string;
29505
+ /**
29506
+ * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization.
29507
+ */
29508
+ project_id_or_slug: string;
29509
+ };
29510
+ query?: never;
29511
+ url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/custom-inbound-filters/';
29512
+ };
29513
+ export type ListProjectCustomInboundFiltersErrors = {
29514
+ /**
29515
+ * Bad Request
29516
+ */
29517
+ 400: unknown;
29518
+ /**
29519
+ * Forbidden
29520
+ */
29521
+ 403: unknown;
29522
+ /**
29523
+ * Not Found
29524
+ */
29525
+ 404: unknown;
29526
+ };
29527
+ export type ListProjectCustomInboundFiltersResponses = {
29528
+ 200: Array<{
29529
+ /**
29530
+ * The ID of the filter.
29531
+ */
29532
+ readonly id: string;
29533
+ /**
29534
+ * The data the filter matches against. `all` is the catch-all: it filters every data type Sentry ingests, including ones added later, and accepts only the conditions that every data type carries a field for.
29535
+ *
29536
+ * * `all`
29537
+ * * `error`
29538
+ * * `log`
29539
+ * * `metric`
29540
+ * * `span`
29541
+ */
29542
+ dataType: 'all' | 'error' | 'log' | 'metric' | 'span';
29543
+ /**
29544
+ * Conditions are combined with AND: an event must match every condition to be filtered out. There is no OR between conditions, so e.g. two release conditions can express a range (`>2 AND <4`). To broaden matching, widen a condition's values or add separate filters.
29545
+ */
29546
+ conditions: Array<{
29547
+ /**
29548
+ * The field the condition matches against. Every `dataType` accepts `release` and `ip_address`. In addition, `error` accepts `error_type` and `error_message`, `log` accepts `log_message`, and `metric` accepts `metric_name`. `span` and `all` accept no other types.
29549
+ *
29550
+ * * `error_type`
29551
+ * * `error_message`
29552
+ * * `log_message`
29553
+ * * `metric_name`
29554
+ * * `release`
29555
+ * * `ip_address`
29556
+ */
29557
+ type: 'error_type' | 'error_message' | 'log_message' | 'metric_name' | 'release' | 'ip_address';
29558
+ /**
29559
+ * Glob patterns the field is matched against. The condition matches when any pattern matches, so multiple values act as OR.
29560
+ */
29561
+ value: Array<string>;
29562
+ }>;
29563
+ /**
29564
+ * When the filter was created.
29565
+ */
29566
+ readonly dateCreated: string;
29567
+ /**
29568
+ * When the filter was last changed.
29569
+ */
29570
+ readonly dateUpdated: string;
29571
+ /**
29572
+ * A human-readable label for the filter.
29573
+ */
29574
+ name?: string | null;
29575
+ /**
29576
+ * Whether the filter drops matching data. An inactive filter is kept but ignored.
29577
+ */
29578
+ active?: boolean;
29579
+ }>;
29580
+ };
29581
+ export type ListProjectCustomInboundFiltersResponse = ListProjectCustomInboundFiltersResponses[keyof ListProjectCustomInboundFiltersResponses];
29582
+ export type CreateProjectCustomInboundFilterData = {
29583
+ body: {
29584
+ /**
29585
+ * The ID of the filter.
29586
+ */
29587
+ readonly id: string;
29588
+ /**
29589
+ * The data the filter matches against. `all` is the catch-all: it filters every data type Sentry ingests, including ones added later, and accepts only the conditions that every data type carries a field for.
29590
+ *
29591
+ * * `all`
29592
+ * * `error`
29593
+ * * `log`
29594
+ * * `metric`
29595
+ * * `span`
29596
+ */
29597
+ dataType: 'all' | 'error' | 'log' | 'metric' | 'span';
29598
+ /**
29599
+ * Conditions are combined with AND: an event must match every condition to be filtered out. There is no OR between conditions, so e.g. two release conditions can express a range (`>2 AND <4`). To broaden matching, widen a condition's values or add separate filters.
29600
+ */
29601
+ conditions: Array<{
29602
+ /**
29603
+ * The field the condition matches against. Every `dataType` accepts `release` and `ip_address`. In addition, `error` accepts `error_type` and `error_message`, `log` accepts `log_message`, and `metric` accepts `metric_name`. `span` and `all` accept no other types.
29604
+ *
29605
+ * * `error_type`
29606
+ * * `error_message`
29607
+ * * `log_message`
29608
+ * * `metric_name`
29609
+ * * `release`
29610
+ * * `ip_address`
29611
+ */
29612
+ type: 'error_type' | 'error_message' | 'log_message' | 'metric_name' | 'release' | 'ip_address';
29613
+ /**
29614
+ * Glob patterns the field is matched against. The condition matches when any pattern matches, so multiple values act as OR.
29615
+ */
29616
+ value: Array<string>;
29617
+ }>;
29618
+ /**
29619
+ * When the filter was created.
29620
+ */
29621
+ readonly dateCreated: string;
29622
+ /**
29623
+ * When the filter was last changed.
29624
+ */
29625
+ readonly dateUpdated: string;
29626
+ /**
29627
+ * A human-readable label for the filter.
29628
+ */
29629
+ name?: string | null;
29630
+ /**
29631
+ * Whether the filter drops matching data. An inactive filter is kept but ignored.
29632
+ */
29633
+ active?: boolean;
29634
+ };
29635
+ path: {
29636
+ /**
29637
+ * The ID or slug of the organization the resource belongs to.
29638
+ */
29639
+ organization_id_or_slug: string;
29640
+ /**
29641
+ * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization.
29642
+ */
29643
+ project_id_or_slug: string;
29644
+ };
29645
+ query?: never;
29646
+ url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/custom-inbound-filters/';
29647
+ };
29648
+ export type CreateProjectCustomInboundFilterErrors = {
29649
+ /**
29650
+ * Bad Request
29651
+ */
29652
+ 400: unknown;
29653
+ /**
29654
+ * Forbidden
29655
+ */
29656
+ 403: unknown;
29657
+ /**
29658
+ * Not Found
29659
+ */
29660
+ 404: unknown;
29661
+ };
29662
+ export type CreateProjectCustomInboundFilterResponses = {
29663
+ 201: {
29664
+ /**
29665
+ * The ID of the filter.
29666
+ */
29667
+ readonly id: string;
29668
+ /**
29669
+ * The data the filter matches against. `all` is the catch-all: it filters every data type Sentry ingests, including ones added later, and accepts only the conditions that every data type carries a field for.
29670
+ *
29671
+ * * `all`
29672
+ * * `error`
29673
+ * * `log`
29674
+ * * `metric`
29675
+ * * `span`
29676
+ */
29677
+ dataType: 'all' | 'error' | 'log' | 'metric' | 'span';
29678
+ /**
29679
+ * Conditions are combined with AND: an event must match every condition to be filtered out. There is no OR between conditions, so e.g. two release conditions can express a range (`>2 AND <4`). To broaden matching, widen a condition's values or add separate filters.
29680
+ */
29681
+ conditions: Array<{
29682
+ /**
29683
+ * The field the condition matches against. Every `dataType` accepts `release` and `ip_address`. In addition, `error` accepts `error_type` and `error_message`, `log` accepts `log_message`, and `metric` accepts `metric_name`. `span` and `all` accept no other types.
29684
+ *
29685
+ * * `error_type`
29686
+ * * `error_message`
29687
+ * * `log_message`
29688
+ * * `metric_name`
29689
+ * * `release`
29690
+ * * `ip_address`
29691
+ */
29692
+ type: 'error_type' | 'error_message' | 'log_message' | 'metric_name' | 'release' | 'ip_address';
29693
+ /**
29694
+ * Glob patterns the field is matched against. The condition matches when any pattern matches, so multiple values act as OR.
29695
+ */
29696
+ value: Array<string>;
29697
+ }>;
29698
+ /**
29699
+ * When the filter was created.
29700
+ */
29701
+ readonly dateCreated: string;
29702
+ /**
29703
+ * When the filter was last changed.
29704
+ */
29705
+ readonly dateUpdated: string;
29706
+ /**
29707
+ * A human-readable label for the filter.
29708
+ */
29709
+ name?: string | null;
29710
+ /**
29711
+ * Whether the filter drops matching data. An inactive filter is kept but ignored.
29712
+ */
29713
+ active?: boolean;
29714
+ };
29715
+ };
29716
+ export type CreateProjectCustomInboundFilterResponse = CreateProjectCustomInboundFilterResponses[keyof CreateProjectCustomInboundFilterResponses];
29717
+ export type DeleteProjectCustomInboundFilterData = {
29718
+ body?: never;
29719
+ path: {
29720
+ /**
29721
+ * The ID or slug of the organization the resource belongs to.
29722
+ */
29723
+ organization_id_or_slug: string;
29724
+ /**
29725
+ * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization.
29726
+ */
29727
+ project_id_or_slug: string;
29728
+ /**
29729
+ * The ID of the custom inbound filter.
29730
+ */
29731
+ filter_id: string;
29732
+ };
29733
+ query?: never;
29734
+ url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/custom-inbound-filters/{filter_id}/';
29735
+ };
29736
+ export type DeleteProjectCustomInboundFilterErrors = {
29737
+ /**
29738
+ * Bad Request
29739
+ */
29740
+ 400: unknown;
29741
+ /**
29742
+ * Forbidden
29743
+ */
29744
+ 403: unknown;
29745
+ /**
29746
+ * Not Found
29747
+ */
29748
+ 404: unknown;
29749
+ };
29750
+ export type DeleteProjectCustomInboundFilterResponses = {
29751
+ /**
29752
+ * No response body
29753
+ */
29754
+ 204: void;
29755
+ };
29756
+ export type DeleteProjectCustomInboundFilterResponse = DeleteProjectCustomInboundFilterResponses[keyof DeleteProjectCustomInboundFilterResponses];
29757
+ export type GetProjectCustomInboundFilterData = {
29758
+ body?: never;
29759
+ path: {
29760
+ /**
29761
+ * The ID or slug of the organization the resource belongs to.
29762
+ */
29763
+ organization_id_or_slug: string;
29764
+ /**
29765
+ * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization.
29766
+ */
29767
+ project_id_or_slug: string;
29768
+ /**
29769
+ * The ID of the custom inbound filter.
29770
+ */
29771
+ filter_id: string;
29772
+ };
29773
+ query?: never;
29774
+ url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/custom-inbound-filters/{filter_id}/';
29775
+ };
29776
+ export type GetProjectCustomInboundFilterErrors = {
29777
+ /**
29778
+ * Bad Request
29779
+ */
29780
+ 400: unknown;
29781
+ /**
29782
+ * Forbidden
29783
+ */
29784
+ 403: unknown;
29785
+ /**
29786
+ * Not Found
29787
+ */
29788
+ 404: unknown;
29789
+ };
29790
+ export type GetProjectCustomInboundFilterResponses = {
29791
+ 200: {
29792
+ /**
29793
+ * The ID of the filter.
29794
+ */
29795
+ readonly id: string;
29796
+ /**
29797
+ * The data the filter matches against. `all` is the catch-all: it filters every data type Sentry ingests, including ones added later, and accepts only the conditions that every data type carries a field for.
29798
+ *
29799
+ * * `all`
29800
+ * * `error`
29801
+ * * `log`
29802
+ * * `metric`
29803
+ * * `span`
29804
+ */
29805
+ dataType: 'all' | 'error' | 'log' | 'metric' | 'span';
29806
+ /**
29807
+ * Conditions are combined with AND: an event must match every condition to be filtered out. There is no OR between conditions, so e.g. two release conditions can express a range (`>2 AND <4`). To broaden matching, widen a condition's values or add separate filters.
29808
+ */
29809
+ conditions: Array<{
29810
+ /**
29811
+ * The field the condition matches against. Every `dataType` accepts `release` and `ip_address`. In addition, `error` accepts `error_type` and `error_message`, `log` accepts `log_message`, and `metric` accepts `metric_name`. `span` and `all` accept no other types.
29812
+ *
29813
+ * * `error_type`
29814
+ * * `error_message`
29815
+ * * `log_message`
29816
+ * * `metric_name`
29817
+ * * `release`
29818
+ * * `ip_address`
29819
+ */
29820
+ type: 'error_type' | 'error_message' | 'log_message' | 'metric_name' | 'release' | 'ip_address';
29821
+ /**
29822
+ * Glob patterns the field is matched against. The condition matches when any pattern matches, so multiple values act as OR.
29823
+ */
29824
+ value: Array<string>;
29825
+ }>;
29826
+ /**
29827
+ * When the filter was created.
29828
+ */
29829
+ readonly dateCreated: string;
29830
+ /**
29831
+ * When the filter was last changed.
29832
+ */
29833
+ readonly dateUpdated: string;
29834
+ /**
29835
+ * A human-readable label for the filter.
29836
+ */
29837
+ name?: string | null;
29838
+ /**
29839
+ * Whether the filter drops matching data. An inactive filter is kept but ignored.
29840
+ */
29841
+ active?: boolean;
29842
+ };
29843
+ };
29844
+ export type GetProjectCustomInboundFilterResponse = GetProjectCustomInboundFilterResponses[keyof GetProjectCustomInboundFilterResponses];
29845
+ export type UpdateProjectCustomInboundFilterData = {
29846
+ body: {
29847
+ /**
29848
+ * The ID of the filter.
29849
+ */
29850
+ readonly id: string;
29851
+ /**
29852
+ * The data the filter matches against. `all` is the catch-all: it filters every data type Sentry ingests, including ones added later, and accepts only the conditions that every data type carries a field for.
29853
+ *
29854
+ * * `all`
29855
+ * * `error`
29856
+ * * `log`
29857
+ * * `metric`
29858
+ * * `span`
29859
+ */
29860
+ dataType: 'all' | 'error' | 'log' | 'metric' | 'span';
29861
+ /**
29862
+ * Conditions are combined with AND: an event must match every condition to be filtered out. There is no OR between conditions, so e.g. two release conditions can express a range (`>2 AND <4`). To broaden matching, widen a condition's values or add separate filters.
29863
+ */
29864
+ conditions: Array<{
29865
+ /**
29866
+ * The field the condition matches against. Every `dataType` accepts `release` and `ip_address`. In addition, `error` accepts `error_type` and `error_message`, `log` accepts `log_message`, and `metric` accepts `metric_name`. `span` and `all` accept no other types.
29867
+ *
29868
+ * * `error_type`
29869
+ * * `error_message`
29870
+ * * `log_message`
29871
+ * * `metric_name`
29872
+ * * `release`
29873
+ * * `ip_address`
29874
+ */
29875
+ type: 'error_type' | 'error_message' | 'log_message' | 'metric_name' | 'release' | 'ip_address';
29876
+ /**
29877
+ * Glob patterns the field is matched against. The condition matches when any pattern matches, so multiple values act as OR.
29878
+ */
29879
+ value: Array<string>;
29880
+ }>;
29881
+ /**
29882
+ * When the filter was created.
29883
+ */
29884
+ readonly dateCreated: string;
29885
+ /**
29886
+ * When the filter was last changed.
29887
+ */
29888
+ readonly dateUpdated: string;
29889
+ /**
29890
+ * A human-readable label for the filter.
29891
+ */
29892
+ name?: string | null;
29893
+ /**
29894
+ * Whether the filter drops matching data. An inactive filter is kept but ignored.
29895
+ */
29896
+ active?: boolean;
29897
+ };
29898
+ path: {
29899
+ /**
29900
+ * The ID or slug of the organization the resource belongs to.
29901
+ */
29902
+ organization_id_or_slug: string;
29903
+ /**
29904
+ * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization.
29905
+ */
29906
+ project_id_or_slug: string;
29907
+ /**
29908
+ * The ID of the custom inbound filter.
29909
+ */
29910
+ filter_id: string;
29911
+ };
29912
+ query?: never;
29913
+ url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/custom-inbound-filters/{filter_id}/';
29914
+ };
29915
+ export type UpdateProjectCustomInboundFilterErrors = {
29916
+ /**
29917
+ * Bad Request
29918
+ */
29919
+ 400: unknown;
29920
+ /**
29921
+ * Forbidden
29922
+ */
29923
+ 403: unknown;
29924
+ /**
29925
+ * Not Found
29926
+ */
29927
+ 404: unknown;
29928
+ };
29929
+ export type UpdateProjectCustomInboundFilterResponses = {
29930
+ 200: {
29931
+ /**
29932
+ * The ID of the filter.
29933
+ */
29934
+ readonly id: string;
29935
+ /**
29936
+ * The data the filter matches against. `all` is the catch-all: it filters every data type Sentry ingests, including ones added later, and accepts only the conditions that every data type carries a field for.
29937
+ *
29938
+ * * `all`
29939
+ * * `error`
29940
+ * * `log`
29941
+ * * `metric`
29942
+ * * `span`
29943
+ */
29944
+ dataType: 'all' | 'error' | 'log' | 'metric' | 'span';
29945
+ /**
29946
+ * Conditions are combined with AND: an event must match every condition to be filtered out. There is no OR between conditions, so e.g. two release conditions can express a range (`>2 AND <4`). To broaden matching, widen a condition's values or add separate filters.
29947
+ */
29948
+ conditions: Array<{
29949
+ /**
29950
+ * The field the condition matches against. Every `dataType` accepts `release` and `ip_address`. In addition, `error` accepts `error_type` and `error_message`, `log` accepts `log_message`, and `metric` accepts `metric_name`. `span` and `all` accept no other types.
29951
+ *
29952
+ * * `error_type`
29953
+ * * `error_message`
29954
+ * * `log_message`
29955
+ * * `metric_name`
29956
+ * * `release`
29957
+ * * `ip_address`
29958
+ */
29959
+ type: 'error_type' | 'error_message' | 'log_message' | 'metric_name' | 'release' | 'ip_address';
29960
+ /**
29961
+ * Glob patterns the field is matched against. The condition matches when any pattern matches, so multiple values act as OR.
29962
+ */
29963
+ value: Array<string>;
29964
+ }>;
29965
+ /**
29966
+ * When the filter was created.
29967
+ */
29968
+ readonly dateCreated: string;
29969
+ /**
29970
+ * When the filter was last changed.
29971
+ */
29972
+ readonly dateUpdated: string;
29973
+ /**
29974
+ * A human-readable label for the filter.
29975
+ */
29976
+ name?: string | null;
29977
+ /**
29978
+ * Whether the filter drops matching data. An inactive filter is kept but ignored.
29979
+ */
29980
+ active?: boolean;
29981
+ };
29982
+ };
29983
+ export type UpdateProjectCustomInboundFilterResponse = UpdateProjectCustomInboundFilterResponses[keyof UpdateProjectCustomInboundFilterResponses];
29309
29984
  export type ListProjectEnvironmentsData = {
29310
29985
  body?: never;
29311
29986
  path: {
@@ -33336,6 +34011,38 @@ export type GetProjectReplayDeletionJobResponses = {
33336
34011
  };
33337
34012
  };
33338
34013
  export type GetProjectReplayDeletionJobResponse = GetProjectReplayDeletionJobResponses[keyof GetProjectReplayDeletionJobResponses];
34014
+ export type ListProjectRepositoriesData = {
34015
+ body?: never;
34016
+ path: {
34017
+ /**
34018
+ * The ID or slug of the organization the resource belongs to.
34019
+ */
34020
+ organization_id_or_slug: string;
34021
+ /**
34022
+ * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization.
34023
+ */
34024
+ project_id_or_slug: string;
34025
+ };
34026
+ query?: {
34027
+ /**
34028
+ * When set to `1`, each row includes a `mappingCount` field with the number of code path mappings for that repository. Omitted by default to keep the response lightweight.
34029
+ */
34030
+ includeMappingCount?: string;
34031
+ };
34032
+ url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/repo/';
34033
+ };
34034
+ export type ListProjectRepositoriesResponses = {
34035
+ 200: Array<{
34036
+ id: string;
34037
+ projectId: string;
34038
+ repositoryId: string;
34039
+ repoName: string;
34040
+ source: string;
34041
+ providerKey: string | null;
34042
+ mappingCount?: number;
34043
+ }>;
34044
+ };
34045
+ export type ListProjectRepositoriesResponse = ListProjectRepositoriesResponses[keyof ListProjectRepositoriesResponses];
33339
34046
  export type LinkProjectRepositoryData = {
33340
34047
  body: {
33341
34048
  /**
@@ -34457,7 +35164,12 @@ export type ExecuteSentryAppInstallationExternalIssueActionData = {
34457
35164
  */
34458
35165
  uuid: string;
34459
35166
  };
34460
- query?: never;
35167
+ query?: {
35168
+ /**
35169
+ * The exact canonical webUrl of the external issue to link. Only supported for action=link. An existing matching association is a no-op; a different association or callback URL returns 409 without replacing the link.
35170
+ */
35171
+ expectedExternalIssueUrl?: string;
35172
+ };
34461
35173
  url: '/api/0/sentry-app-installations/{uuid}/external-issue-actions/';
34462
35174
  };
34463
35175
  export type ExecuteSentryAppInstallationExternalIssueActionErrors = {
@@ -34477,6 +35189,10 @@ export type ExecuteSentryAppInstallationExternalIssueActionErrors = {
34477
35189
  * Not Found
34478
35190
  */
34479
35191
  404: unknown;
35192
+ /**
35193
+ * Conflict
35194
+ */
35195
+ 409: unknown;
34480
35196
  };
34481
35197
  export type ExecuteSentryAppInstallationExternalIssueActionResponses = {
34482
35198
  200: {
@@ -34486,6 +35202,13 @@ export type ExecuteSentryAppInstallationExternalIssueActionResponses = {
34486
35202
  displayName: string;
34487
35203
  webUrl: string;
34488
35204
  };
35205
+ 201: {
35206
+ id: string;
35207
+ issueId: string;
35208
+ serviceType: string;
35209
+ displayName: string;
35210
+ webUrl: string;
35211
+ };
34489
35212
  };
34490
35213
  export type ExecuteSentryAppInstallationExternalIssueActionResponse = ExecuteSentryAppInstallationExternalIssueActionResponses[keyof ExecuteSentryAppInstallationExternalIssueActionResponses];
34491
35214
  export type GetSentryAppInstallationExternalRequestOptionsData = {
@@ -36436,6 +37159,10 @@ export type DeleteSentryAppInstallationExternalIssueErrors = {
36436
37159
  * External issue not found
36437
37160
  */
36438
37161
  404: unknown;
37162
+ /**
37163
+ * This issue link is being updated. Try again.
37164
+ */
37165
+ 409: unknown;
36439
37166
  };
36440
37167
  export type DeleteSentryAppInstallationExternalIssueResponses = {
36441
37168
  /**
@@ -37629,6 +38356,10 @@ export type DeleteOrganizationIssueExternalIssueErrors = {
37629
38356
  * Not Found
37630
38357
  */
37631
38358
  404: unknown;
38359
+ /**
38360
+ * Conflict
38361
+ */
38362
+ 409: unknown;
37632
38363
  };
37633
38364
  export type DeleteOrganizationIssueExternalIssueResponses = {
37634
38365
  /**
@@ -37922,7 +38653,19 @@ export type DeleteOrganizationIssueIntegrationErrors = {
37922
38653
  * Not Found
37923
38654
  */
37924
38655
  404: unknown;
38656
+ /**
38657
+ * DRF's standard error-body shape: `{"detail": str}`.
38658
+ *
38659
+ * Use in `Response[T] | Response[DetailResponse]` annotations on endpoints
38660
+ * whose inline error returns are exactly `Response({"detail": "..."}, status=4xx)`.
38661
+ * Endpoints whose error bodies have richer or different shapes should
38662
+ * declare their own local TypedDicts instead.
38663
+ */
38664
+ 409: {
38665
+ detail: string;
38666
+ };
37925
38667
  };
38668
+ export type DeleteOrganizationIssueIntegrationError = DeleteOrganizationIssueIntegrationErrors[keyof DeleteOrganizationIssueIntegrationErrors];
37926
38669
  export type DeleteOrganizationIssueIntegrationResponses = {
37927
38670
  /**
37928
38671
  * No Content
@@ -38103,8 +38846,27 @@ export type UpdateOrganizationIssueIntegrationErrors = {
38103
38846
  * Not Found
38104
38847
  */
38105
38848
  404: unknown;
38849
+ /**
38850
+ * DRF's standard error-body shape: `{"detail": str}`.
38851
+ *
38852
+ * Use in `Response[T] | Response[DetailResponse]` annotations on endpoints
38853
+ * whose inline error returns are exactly `Response({"detail": "..."}, status=4xx)`.
38854
+ * Endpoints whose error bodies have richer or different shapes should
38855
+ * declare their own local TypedDicts instead.
38856
+ */
38857
+ 409: {
38858
+ detail: string;
38859
+ };
38106
38860
  };
38861
+ export type UpdateOrganizationIssueIntegrationError = UpdateOrganizationIssueIntegrationErrors[keyof UpdateOrganizationIssueIntegrationErrors];
38107
38862
  export type UpdateOrganizationIssueIntegrationResponses = {
38863
+ 200: {
38864
+ id: number;
38865
+ key: string;
38866
+ url: string;
38867
+ integrationId: number;
38868
+ displayName: string;
38869
+ };
38108
38870
  201: {
38109
38871
  id: number;
38110
38872
  key: string;