@groundcover/api-client 0.20.0 → 0.22.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.
@@ -60,6 +60,13 @@ export type AgentLlmProviderConfig = {
60
60
  * Provider-compatible endpoint base URL, if configured.
61
61
  */
62
62
  baseUrl?: string;
63
+ /**
64
+ * Static provider configured by LLM_PROVIDER. Null when dummy_provider marks
65
+ * a deployment without a managed default. This is response-only metadata and
66
+ * is not part of AgentLLMProviderConfigRequest.
67
+ * Nullable: true
68
+ */
69
+ defaultProvider?: string | null;
63
70
  /**
64
71
  * Whether an API key secret ref is configured.
65
72
  */
@@ -355,6 +362,25 @@ export type AssertionSeverity = string;
355
362
  */
356
363
  export type AssertionSource = string;
357
364
 
365
+ export type AssetExclusion = {
366
+ /**
367
+ * The type of the excluded asset.
368
+ */
369
+ asset_type: string;
370
+ /**
371
+ * When the asset was excluded.
372
+ */
373
+ excluded_at: string;
374
+ /**
375
+ * Email of the user who excluded the asset.
376
+ */
377
+ excluded_by: string;
378
+ /**
379
+ * The provider's asset identifier.
380
+ */
381
+ source_resource_id: string;
382
+ };
383
+
358
384
  export type AssetFetchResult = {
359
385
  /**
360
386
  * Error code if the fetch failed (e.g., "RATE_LIMITED", "UNAUTHORIZED").
@@ -470,7 +496,7 @@ export type AssetInstallResult = {
470
496
  /**
471
497
  * The status of the installation.
472
498
  */
473
- status: 'installed' | 'already_installed' | 'not_found' | 'not_convertible' | 'failed';
499
+ status: 'installed' | 'already_installed' | 'not_found' | 'not_convertible' | 'failed' | 'excluded';
474
500
  };
475
501
 
476
502
  export type AssetItem = {
@@ -532,6 +558,14 @@ export type AssetListItem = {
532
558
  * Format: date-time
533
559
  */
534
560
  discovered_at?: string;
561
+ /**
562
+ * When the asset was excluded. Absent when not excluded.
563
+ */
564
+ excluded_at?: string;
565
+ /**
566
+ * Email of the user who excluded this asset from the migration. Absent when not excluded.
567
+ */
568
+ excluded_by?: string;
535
569
  /**
536
570
  * The groundcover resource ID if installed.
537
571
  */
@@ -613,6 +647,14 @@ export type AssetMetadata = {
613
647
  * Monitor-specific: the beautified type of the monitor.
614
648
  */
615
649
  type?: string;
650
+ /**
651
+ * Dashboard-specific: Datadog-recorded views at fetch time.
652
+ */
653
+ viewCount?: number;
654
+ /**
655
+ * Dashboard-specific: new fetches use 1 (least viewed) through 5 (most viewed), based on log-scaled view counts.
656
+ */
657
+ viewRank?: number;
616
658
  };
617
659
 
618
660
  export type AssetSummaryResponseItem = {
@@ -814,6 +856,27 @@ export type BaseQuery = {
814
856
  sqlPipeline?: SqlPipeline;
815
857
  };
816
858
 
859
+ export type BatchDashboardsError = {
860
+ /**
861
+ * Code mirrors the single-route ErrorResponse.code contract so the UI can
862
+ * branch the same way: set to VIEW_REVISION_CONFLICT when the item lost a
863
+ * write race (retry the item), empty for permanent per-item failures.
864
+ */
865
+ code?: string;
866
+ id?: string;
867
+ reason?: string;
868
+ };
869
+
870
+ export type BatchDashboardsRequest = {
871
+ dashboardUuids: Array<string>;
872
+ };
873
+
874
+ export type BatchDashboardsResponse = {
875
+ errors?: Array<BatchDashboardsError>;
876
+ failedCount?: number;
877
+ updatedCount?: number;
878
+ };
879
+
817
880
  export type BatchGetMonitorsError = {
818
881
  message?: string;
819
882
  uuid?: string;
@@ -832,6 +895,38 @@ export type BatchGetMonitorsResponse = {
832
895
  };
833
896
  };
834
897
 
898
+ /**
899
+ * BatchReadMonitorsV2Response is the v2 twin of BatchGetMonitorsResponse: the
900
+ * stored entity (envelope + spec) per uuid instead of YAML text, with the same
901
+ * per-uuid partial success — a miss lands in Errors and never fails the batch.
902
+ */
903
+ export type BatchReadMonitorsV2Response = {
904
+ errors?: Array<BatchGetMonitorsError>;
905
+ failedCount?: number;
906
+ fetchedCount?: number;
907
+ monitors?: {
908
+ [key: string]: V2MonitorEntity;
909
+ };
910
+ };
911
+
912
+ export type BatchUpdateDashboardTagsRequest = {
913
+ dashboardUuids: Array<string>;
914
+ /**
915
+ * Tags to append to each dashboard. Entries are trimmed and exact-case
916
+ * deduplicated. At least one of tagsToAdd or tagsToRemove must be non-empty
917
+ * after normalization, and the two lists must not share a tag (400
918
+ * otherwise). 1000 is a resource-exhaustion bound, not a product tag limit:
919
+ * MAX_TAGS_PER_VIEW applies to each dashboard's resulting set
920
+ * (too_many_tags), not to the delta lists.
921
+ */
922
+ tagsToAdd?: Array<string>;
923
+ /**
924
+ * Tags to remove from each dashboard. Same normalization and disjointness
925
+ * rules as tagsToAdd; removing a tag a dashboard does not carry is a no-op.
926
+ */
927
+ tagsToRemove?: Array<string>;
928
+ };
929
+
835
930
  export type BucketDurationSeconds = number;
836
931
 
837
932
  /**
@@ -2404,6 +2499,60 @@ export type CustomRule = {
2404
2499
  retention: string;
2405
2500
  };
2406
2501
 
2502
+ /**
2503
+ * DBMMeasurementsSearchRequest queries raw statement measurement intervals.
2504
+ *
2505
+ * A GCQL query is required. count() counts intervals;
2506
+ * sum(calls) counts database executions.
2507
+ */
2508
+ export type DbmMeasurementsSearchRequest = {
2509
+ /**
2510
+ * End time of the request range
2511
+ */
2512
+ end: string;
2513
+ query: string;
2514
+ sources?: Array<Condition>;
2515
+ /**
2516
+ * Start time of the request range
2517
+ */
2518
+ start: string;
2519
+ };
2520
+
2521
+ export type DbmMeasurementsSearchTimeSeriesRequest = {
2522
+ /**
2523
+ * Positive interval used to group measurements into time buckets.
2524
+ */
2525
+ bucketDuration: string;
2526
+ /**
2527
+ * End time of the request range
2528
+ */
2529
+ end: string;
2530
+ /**
2531
+ * Empty buckets contain null unless fillValue is supplied.
2532
+ */
2533
+ fillValue?: number;
2534
+ query: string;
2535
+ sources?: Array<Condition>;
2536
+ /**
2537
+ * Start time of the request range
2538
+ */
2539
+ start: string;
2540
+ valueField?: string;
2541
+ };
2542
+
2543
+ /**
2544
+ * DDMetricInactiveBucket counts units whose only unmet metric dependency is
2545
+ * confirmed inactive/missing in Datadog itself, tagging every metric involved
2546
+ * (a unit can mix a confirmed-inactive metric with a self-observability one;
2547
+ * see unitMissingMetricsAreDDInactiveOnly). Datadog itself never had data for
2548
+ * these metrics, so groundcover correctly has none either — a genuine,
2549
+ * successful migration outcome, not a gap to fix.
2550
+ */
2551
+ export type DdMetricInactiveBucket = {
2552
+ count?: number;
2553
+ metrics?: Array<TaggedMetric>;
2554
+ };
2555
+
2407
2556
  /**
2408
2557
  * DashboardFiltersRequest is the POST /api/dashboards/filters request body.
2409
2558
  */
@@ -2871,14 +3020,21 @@ export type EventsSearchTimeSeriesRequest = {
2871
3020
 
2872
3021
  /**
2873
3022
  * ExcludedBucket counts units held out of the funnel because their only unmet
2874
- * dependency is Datadog's own telemetry: a self-observability metric, or one
2875
- * already inactive in Datadog. Migration quality has no bearing on either —
2876
- * they were never going to return data — so they are reported separately
2877
- * rather than weighing on supported/unsupported like a real gap would.
3023
+ * dependency is Datadog's own telemetry: a self-observability metric. Migration
3024
+ * quality has no bearing on it — it was never going to return data — so it is
3025
+ * reported separately rather than weighing on supported/unsupported like a
3026
+ * real gap would.
3027
+ *
3028
+ * A unit confirmed inactive in Datadog (IssueDDInactiveOrMissing) no longer
3029
+ * lands here — see StageDDMetricInactive and DDMetricInactiveBucket, its own
3030
+ * green success bucket under SupportedConverted. The former InactiveInDatadog
3031
+ * field here was removed rather than kept as an always-zero counter: nothing
3032
+ * outside this package ever read it (the funnelviz decoder only reads Total,
3033
+ * and the CLI summary printer never printed Excluded at all), so there was no
3034
+ * reader to preserve compatibility for.
2878
3035
  */
2879
3036
  export type ExcludedBucket = {
2880
3037
  datadog_self_observability?: MetricListBucket;
2881
- inactive_in_datadog?: MetricListBucket;
2882
3038
  total?: number;
2883
3039
  };
2884
3040
 
@@ -2936,6 +3092,20 @@ export type ExportCapture = {
2936
3092
  fullscreen?: boolean;
2937
3093
  };
2938
3094
 
3095
+ /**
3096
+ * ExportMonitorsV2Request is the POST /api/v2/monitors/export body.
3097
+ */
3098
+ export type ExportMonitorsV2Request = {
3099
+ /**
3100
+ * Format names the emitted resource.
3101
+ */
3102
+ format: 'terraform';
3103
+ /**
3104
+ * UUIDs of the monitors to export, rendered in this order.
3105
+ */
3106
+ uuids: Array<string>;
3107
+ };
3108
+
2939
3109
  /**
2940
3110
  * ExportRequestBody represents the request body proxied to export-service.
2941
3111
  */
@@ -3078,6 +3248,13 @@ export type Finding = {
3078
3248
  integration?: string;
3079
3249
  issue_type?: IssueType;
3080
3250
  label_key?: string;
3251
+ /**
3252
+ * LabelKeyDD is the Datadog-side name of LabelKey, set only when a mapping
3253
+ * rule renamed it. Callers that match a finding against manifest filters —
3254
+ * which carry Datadog names — need both, because a rename makes the two
3255
+ * namespaces diverge and a GC-only comparison silently stops matching.
3256
+ */
3257
+ label_key_dd?: string;
3081
3258
  label_value?: string;
3082
3259
  label_values?: Array<string>;
3083
3260
  labels_used?: {
@@ -3098,11 +3275,21 @@ export type Finding = {
3098
3275
  */
3099
3276
  export type FunnelAssetEntry = {
3100
3277
  asset_id?: string;
3278
+ /**
3279
+ * AssetKind names the unsupported widget/monitor type when the unit never
3280
+ * reached conversion, e.g. "heatmap" or "slo".
3281
+ */
3282
+ asset_kind?: string;
3101
3283
  asset_name?: string;
3102
3284
  asset_type?: string;
3103
3285
  metrics?: Array<string>;
3104
3286
  missing_keys?: Array<string>;
3105
3287
  missing_values?: Array<string>;
3288
+ /**
3289
+ * PrimaryDataset is the one missing dataset the unit is counted under, when
3290
+ * the terminal stage is a missing-dataset gap.
3291
+ */
3292
+ primary_dataset?: string;
3106
3293
  queries?: Array<ExecutedQuery>;
3107
3294
  reason?: string;
3108
3295
  stage?: string;
@@ -3216,7 +3403,7 @@ export type GetEventsOverTimeRequest = {
3216
3403
  /**
3217
3404
  * Field to sort events by.
3218
3405
  */
3219
- sortBy: 'timestamp' | 'namespace' | 'instance' | 'object_kind' | 'firstSeen' | 'lastSeen' | 'type' | 'reason' | 'count' | 'workload' | 'cluster';
3406
+ sortBy: 'timestamp' | 'namespace' | 'instance' | 'object_kind' | 'firstSeen' | 'lastSeen' | 'type' | 'reason' | 'message' | 'count' | 'workload' | 'cluster';
3220
3407
  /**
3221
3408
  * Sort order.
3222
3409
  */
@@ -3439,6 +3626,10 @@ export type InstallAssetsResponse = {
3439
3626
  * The number of assets that were already installed.
3440
3627
  */
3441
3628
  alreadyInstalledCount?: number;
3629
+ /**
3630
+ * The number of assets that were not installed because they are excluded.
3631
+ */
3632
+ excludedCount?: number;
3442
3633
  /**
3443
3634
  * The number of assets that failed to install.
3444
3635
  */
@@ -4061,6 +4252,10 @@ export type ListAssetsByTypeResponse = {
4061
4252
  * List of assets.
4062
4253
  */
4063
4254
  items?: Array<AssetListItem>;
4255
+ /**
4256
+ * True when this router supports view-rank sorting for dashboards. Older routers omit it.
4257
+ */
4258
+ supports_view_rank_sort?: boolean;
4064
4259
  /**
4065
4260
  * Total number of assets.
4066
4261
  */
@@ -4401,6 +4596,13 @@ export type LogsRequestParams = {
4401
4596
  query?: string;
4402
4597
  selectors?: Array<Selector>;
4403
4598
  skip?: number;
4599
+ /**
4600
+ * SortBy is the column/attribute key to order by. Empty means order by
4601
+ * timestamp (the historical behavior). Any root column or attribute is
4602
+ * allowed; string columns are sorted best-effort numerically with a
4603
+ * lexicographic fallback (see search.BuildOrderByColumn).
4604
+ */
4605
+ sortBy?: string;
4404
4606
  sortOrder?: string;
4405
4607
  sources?: Array<Condition>;
4406
4608
  /**
@@ -4667,6 +4869,11 @@ export type MemberView = {
4667
4869
  originId?: string;
4668
4870
  originType?: string;
4669
4871
  owner?: string;
4872
+ /**
4873
+ * PinOrder is the member's pin weight, higher sorts first; nil when not
4874
+ * pinned. The client owns the numbering, so ties and gaps are possible.
4875
+ */
4876
+ pinOrder?: number;
4670
4877
  preset?: string;
4671
4878
  revisionNumber?: number;
4672
4879
  status?: string;
@@ -5043,7 +5250,8 @@ export type MigrationDataSourceItem = {
5043
5250
  * (AWS / GCP / Azure) this is prefixed with the cloud label and a
5044
5251
  * space, e.g. "AWS 123456789012", "GCP sa@my-prod.iam.gserviceaccount.com",
5045
5252
  * "Azure prod-azure-tenant". For non-cloud integrations it is the raw
5046
- * source-provider integration name (e.g. "redis", "kubelet").
5253
+ * source-provider integration name (e.g. "redis", "kubelet"); ordinary
5254
+ * unmapped customer metrics are grouped under "Custom Metrics".
5047
5255
  */
5048
5256
  datasourceName: string;
5049
5257
  /**
@@ -5063,7 +5271,8 @@ export type MigrationDataSourceItem = {
5063
5271
  */
5064
5272
  impactedMonitorsCount: number;
5065
5273
  /**
5066
- * The matching groundcover integration type, or null when unsupported or unmapped.
5274
+ * The matching groundcover integration type. Ordinary unmapped customer
5275
+ * metrics use "custom_metrics"; null is reserved for unsupported vendor telemetry.
5067
5276
  */
5068
5277
  integrationType?: string | null;
5069
5278
  /**
@@ -5490,6 +5699,11 @@ export type OpsGenieData = {
5490
5699
  severity_mapping?: {
5491
5700
  [key: string]: string;
5492
5701
  };
5702
+ /**
5703
+ * Tags added to every alert sent through this destination. Supports up to 20
5704
+ * non-empty tags of at most 50 Unicode characters.
5705
+ */
5706
+ tags?: Array<string>;
5493
5707
  };
5494
5708
 
5495
5709
  export type OpsGenieDataResponse = {
@@ -5503,6 +5717,11 @@ export type OpsGenieDataResponse = {
5503
5717
  severity_mapping?: {
5504
5718
  [key: string]: string;
5505
5719
  };
5720
+ /**
5721
+ * Tags added to every alert sent through this destination. Supports up to 20
5722
+ * non-empty tags of at most 50 Unicode characters.
5723
+ */
5724
+ tags?: Array<string>;
5506
5725
  };
5507
5726
 
5508
5727
  /**
@@ -5621,6 +5840,34 @@ export type PatternParamDistributionValue = {
5621
5840
  patternParamValuePercentage?: number;
5622
5841
  };
5623
5842
 
5843
+ /**
5844
+ * PinViewRequest is the body of POST /api/views/{id}/pin.
5845
+ */
5846
+ export type PinViewRequest = {
5847
+ /**
5848
+ * Order is this view's weight in the member's pin list: higher sorts first,
5849
+ * so send the highest order currently pinned + 1 to put the new pin on top.
5850
+ * Do not send the length of the visible list — archiving clears pins
5851
+ * without packing the numbers, so a length can collide with a live pin.
5852
+ * The client owns the numbering, so the server stores it as sent. It is
5853
+ * int32 to match the pin_order column: a wider value would decode fine here
5854
+ * and then fail at encode time as a 500.
5855
+ */
5856
+ order: number;
5857
+ };
5858
+
5859
+ /**
5860
+ * PinnedResource is one entry of a member's ordered pin list. PinOrder is
5861
+ * exposed so a client that only reads this endpoint can still compute the next
5862
+ * pin's number without also fetching the dashboards list.
5863
+ */
5864
+ export type PinnedResource = {
5865
+ name?: string;
5866
+ pinOrder?: number;
5867
+ resourceType?: string;
5868
+ resourceUuid?: string;
5869
+ };
5870
+
5624
5871
  /**
5625
5872
  * Policy defines an access control policy.
5626
5873
  */
@@ -5695,9 +5942,13 @@ export type PositiveNoDataBucket = {
5695
5942
  };
5696
5943
 
5697
5944
  /**
5698
- * PreflightReport is the top-level structured output of a preflight validation run.
5945
+ * PreflightReportResponse is the preflight report plus backend-only counters.
5699
5946
  */
5700
- export type PreflightReport = {
5947
+ export type PreflightReportResponse = {
5948
+ /**
5949
+ * AssetsReextracted counts assets converted before converted_queries was stored; a non-zero value means the tenant needs a reconvert.
5950
+ */
5951
+ assets_reextracted?: number;
5701
5952
  coverage_plan?: CoveragePlan;
5702
5953
  funnel_by_asset?: FunnelByAsset;
5703
5954
  /**
@@ -5730,6 +5981,51 @@ export type Processor = {
5730
5981
  op?: string;
5731
5982
  };
5732
5983
 
5984
+ /**
5985
+ * FlameNode contains inclusive and self weight in the selected sample unit.
5986
+ */
5987
+ export type ProfilingFlameNode = {
5988
+ children?: Array<ProfilingFlameNode>;
5989
+ name?: string;
5990
+ /**
5991
+ * Omitted identifies a synthetic bucket, distinct from a real frame named other.
5992
+ */
5993
+ omitted?: boolean;
5994
+ self?: number;
5995
+ value?: number;
5996
+ };
5997
+
5998
+ export type ProfilingFlamegraphResponse = {
5999
+ filteredValue?: number;
6000
+ period?: ProfilingPeriod;
6001
+ profileType?: string;
6002
+ root?: ProfilingFlameNode;
6003
+ sampleType?: string;
6004
+ stacks?: ProfilingStackCounts;
6005
+ total?: number;
6006
+ truncated?: boolean;
6007
+ unit?: string;
6008
+ };
6009
+
6010
+ export type ProfilingPeriod = {
6011
+ end?: string;
6012
+ start?: string;
6013
+ };
6014
+
6015
+ /**
6016
+ * StackCounts counts aggregated stacks, not samples or rendered tree nodes.
6017
+ */
6018
+ export type ProfilingStackCounts = {
6019
+ /**
6020
+ * Stacks included in the tree before depth, node, and small-branch compaction.
6021
+ */
6022
+ returned?: number;
6023
+ /**
6024
+ * Matching aggregated stacks before the top-stack limit or result truncation.
6025
+ */
6026
+ total?: number;
6027
+ };
6028
+
5733
6029
  /**
5734
6030
  * PromqlFunction represents a function call in a PromQL query.
5735
6031
  */
@@ -6323,7 +6619,7 @@ export type SearchValuesRequest = {
6323
6619
  /**
6324
6620
  * Type of the search values
6325
6621
  */
6326
- type: 'logs' | 'traces' | 'events' | 'issues' | 'entities' | 'apm' | 'ingestion_measurements' | 'monitors' | 'aws_cur' | 'dashboards';
6622
+ type: 'logs' | 'traces' | 'events' | 'issues' | 'entities' | 'apm' | 'ingestion_measurements' | 'dbm_measurements_statement' | 'monitors' | 'aws_cur' | 'dashboards' | 'profiling_samples';
6327
6623
  };
6328
6624
 
6329
6625
  export type SearchValuesRequestV2 = {
@@ -6661,6 +6957,20 @@ export type SessionsSummaryResponse = {
6661
6957
  uniqueUsers?: number;
6662
6958
  };
6663
6959
 
6960
+ /**
6961
+ * SetMemberPinsOrderRequest is the body of PUT /api/views/member/pins/order.
6962
+ */
6963
+ export type SetMemberPinsOrderRequest = {
6964
+ /**
6965
+ * Ids is the pinned resource UUIDs first-to-last, as the list should
6966
+ * render. Send the member's whole pin list: pins left out keep their old
6967
+ * number, and an id that is not pinned is dropped before numbering, so the
6968
+ * survivors are numbered N..1 with no gaps. No length cap: pins are
6969
+ * uncapped too, and the whole list must fit in one request to keep order.
6970
+ */
6971
+ ids: Array<string>;
6972
+ };
6973
+
6664
6974
  /**
6665
6975
  * Severity represents the severity level for warnings, alerts, etc.
6666
6976
  */
@@ -6981,6 +7291,7 @@ export type SuggestionReason = {
6981
7291
  */
6982
7292
  export type SupportedConvertedBucket = {
6983
7293
  data_set_available?: DataSetAvailableBucket;
7294
+ dd_metric_inactive?: DdMetricInactiveBucket;
6984
7295
  missing_underlying_data_set?: MissingDataSetBucket;
6985
7296
  no_data_needed?: NoDataNeededBucket;
6986
7297
  total?: number;
@@ -7202,6 +7513,11 @@ export type TenantResponse = {
7202
7513
  Used?: number;
7203
7514
  };
7204
7515
 
7516
+ /**
7517
+ * TerraformDocument is one HCL document.
7518
+ */
7519
+ export type TerraformDocument = string;
7520
+
7205
7521
  export type TestConnectedAppRequest = {
7206
7522
  /**
7207
7523
  * The ID of an existing connected app (optional).
@@ -8419,6 +8735,14 @@ export type UsedByResponse = {
8419
8735
  type?: string;
8420
8736
  };
8421
8737
 
8738
+ /**
8739
+ * Channel identifies a Slack channel.
8740
+ */
8741
+ export type V2Channel = {
8742
+ id?: string;
8743
+ name?: string;
8744
+ };
8745
+
8422
8746
  export type V2CreateSilenceRequest = {
8423
8747
  /**
8424
8748
  * Optional comment
@@ -8461,6 +8785,220 @@ export type V2CreateSilenceRequest = {
8461
8785
  type: 'one_time' | 'recurring';
8462
8786
  };
8463
8787
 
8788
+ /**
8789
+ * DestinationApp carries at most one delivery-options block. The spec cannot
8790
+ * check the block against the app id's integration type; the write service does.
8791
+ */
8792
+ export type V2DestinationApp = {
8793
+ id?: string;
8794
+ linear?: V2LinearDeliveryOptions;
8795
+ slack?: V2SlackDeliveryOptions;
8796
+ };
8797
+
8798
+ /**
8799
+ * Destinations is direct delivery. StatusFilters omitted = all.
8800
+ */
8801
+ export type V2Destinations = {
8802
+ apps?: Array<V2DestinationApp>;
8803
+ statusFilters?: Array<IssueStatus>;
8804
+ };
8805
+
8806
+ /**
8807
+ * EvaluationInterval carries the evaluation cadence and pending window. The
8808
+ * prom_duration tag param is the example in the error text, not a bound; the
8809
+ * real bounds are struct-level rules.
8810
+ */
8811
+ export type V2EvaluationInterval = {
8812
+ /**
8813
+ * Whole seconds, >= 1m (plus rollup floors — see the struct-level rules).
8814
+ */
8815
+ interval?: string;
8816
+ /**
8817
+ * nil = default applied on read. Whole seconds.
8818
+ */
8819
+ pendingFor?: string;
8820
+ };
8821
+
8822
+ /**
8823
+ * FiringThreshold is the static-threshold condition. Values cardinality is
8824
+ * per-operator: 1 scalar, 2 ascending.
8825
+ */
8826
+ export type V2FiringThreshold = {
8827
+ operator?: string;
8828
+ recovery?: V2RecoveryThreshold;
8829
+ values?: Array<number>;
8830
+ };
8831
+
8832
+ /**
8833
+ * IssueDisplay controls how the resulting issue is rendered.
8834
+ */
8835
+ export type V2IssueDisplay = {
8836
+ contextLabels?: Array<string>;
8837
+ description?: string;
8838
+ templateLanguage?: string;
8839
+ title?: string;
8840
+ };
8841
+
8842
+ /**
8843
+ * LinearDeliveryOptions requires TeamID when present. Delivery treats an
8844
+ * omitted ResolveTicket as true, so ResolvedStatusID is required unless it is
8845
+ * explicitly false.
8846
+ */
8847
+ export type V2LinearDeliveryOptions = {
8848
+ assigneeId?: string;
8849
+ delegateId?: string;
8850
+ labelIds?: Array<string>;
8851
+ projectId?: string;
8852
+ resolveTicket?: boolean;
8853
+ resolvedStatusId?: string;
8854
+ teamId?: string;
8855
+ };
8856
+
8857
+ /**
8858
+ * V2MonitorEntity is the wire shape of one monitor in the batch-read
8859
+ * response: the envelope fields callers use, plus the spec. A type of its
8860
+ * own, not model.Monitor — a column added to that storage row does not
8861
+ * automatically reach this response.
8862
+ */
8863
+ export type V2MonitorEntity = {
8864
+ backendId?: string;
8865
+ createdAt?: string;
8866
+ createdByEmail?: string;
8867
+ grafanaMonitorId?: string;
8868
+ isProvisioned?: boolean;
8869
+ originId?: string;
8870
+ originType?: string;
8871
+ spec?: V2MonitorSpec;
8872
+ updatedAt?: string;
8873
+ uuid?: string;
8874
+ };
8875
+
8876
+ /**
8877
+ * Model wraps the single query and the thresholds list, capped at one item.
8878
+ */
8879
+ export type V2MonitorModel = {
8880
+ query?: V2Query;
8881
+ thresholds?: Array<V2ThresholdSpec>;
8882
+ };
8883
+
8884
+ /**
8885
+ * MonitorSpec is the v2 monitor document. Value = required outright.
8886
+ * Pointer = optional: nil means the author omitted it, and that intent is
8887
+ * PRESERVED in the stored document — defaults are applied on read, never
8888
+ * baked in at write.
8889
+ *
8890
+ * The validate tags include custom ones registered only by this package.
8891
+ * Validate through ValidateSpec — a bare validator panics.
8892
+ */
8893
+ export type V2MonitorSpec = {
8894
+ /**
8895
+ * Deprecated: workflows-only. Reserved _gc_* keys are rejected.
8896
+ */
8897
+ annotations?: {
8898
+ [key: string]: string;
8899
+ };
8900
+ /**
8901
+ * nil = default (true) applied on read.
8902
+ */
8903
+ autoResolve?: boolean;
8904
+ /**
8905
+ * Category is free-form — the built-ins use Infrastructure|API|… but custom
8906
+ * values exist in the fleet, so there is no enum. "" is omitted/no-data.
8907
+ */
8908
+ category?: string;
8909
+ evaluationErrorState?: string;
8910
+ evaluationInterval?: V2EvaluationInterval;
8911
+ evaluationNoDataState?: string;
8912
+ isPaused?: boolean;
8913
+ issueDisplay?: V2IssueDisplay;
8914
+ /**
8915
+ * Reserved _gc_* keys are rejected.
8916
+ */
8917
+ labels?: {
8918
+ [key: string]: string;
8919
+ };
8920
+ /**
8921
+ * MeasurementType switches the timeline query builder; nil = derived on read.
8922
+ */
8923
+ measurementType?: string;
8924
+ model?: V2MonitorModel;
8925
+ name?: string;
8926
+ notificationSettings?: V2NotificationSettings;
8927
+ /**
8928
+ * Severity is "" when omitted; that intent is preserved, defaults are
8929
+ * applied on read.
8930
+ */
8931
+ severity?: string;
8932
+ /**
8933
+ * Tags are free-form; items must not be blank.
8934
+ */
8935
+ tags?: Array<string>;
8936
+ team?: string;
8937
+ /**
8938
+ * Type is the dataType; query language and datasource are inferred from it.
8939
+ * monitor_type defers to the registry — see registry.go for the set.
8940
+ */
8941
+ type?: string;
8942
+ };
8943
+
8944
+ /**
8945
+ * NoNotifications is the suppress-everything mode marker.
8946
+ */
8947
+ export type V2NoNotifications = {
8948
+ [key: string]: unknown;
8949
+ };
8950
+
8951
+ /**
8952
+ * NotificationRoutes is the route-based delivery mode marker.
8953
+ */
8954
+ export type V2NotificationRoutes = {
8955
+ [key: string]: unknown;
8956
+ };
8957
+
8958
+ /**
8959
+ * NotificationSettings requires exactly one mode block; there is no default.
8960
+ *
8961
+ * The renotification knobs apply to any mode.
8962
+ */
8963
+ export type V2NotificationSettings = {
8964
+ destinations?: V2Destinations;
8965
+ disableRenotification?: boolean;
8966
+ noNotifications?: V2NoNotifications;
8967
+ notificationRoutes?: V2NotificationRoutes;
8968
+ renotificationInterval?: string;
8969
+ };
8970
+
8971
+ /**
8972
+ * Query is the whole expression, in the language MonitorSpec.Type implies.
8973
+ */
8974
+ export type V2Query = {
8975
+ /**
8976
+ * Shifts the eval window back, length unchanged. Whole seconds, at most 7d.
8977
+ * Rejected where Rollup is.
8978
+ */
8979
+ evaluationDelay?: string;
8980
+ expression?: string;
8981
+ /**
8982
+ * Lookback window: whole seconds, positive. Required when the type has a
8983
+ * time axis, rejected otherwise (sql, timeless datasets).
8984
+ */
8985
+ rollup?: string;
8986
+ /**
8987
+ * Required iff metrics, rejected otherwise.
8988
+ */
8989
+ rollupFunction?: string;
8990
+ };
8991
+
8992
+ /**
8993
+ * RecoveryThreshold is the hysteresis condition; its region must not overlap
8994
+ * the firing one. Operator is the author's choice from the recovery-capable
8995
+ * set — required, never defaulted.
8996
+ */
8997
+ export type V2RecoveryThreshold = {
8998
+ operator?: string;
8999
+ values?: Array<number>;
9000
+ };
9001
+
8464
9002
  export type V2SilenceResponse = {
8465
9003
  active?: boolean;
8466
9004
  comment?: string;
@@ -8502,6 +9040,20 @@ export type V2SilencesListResponse = {
8502
9040
  silences?: Array<V2SilenceResponse>;
8503
9041
  };
8504
9042
 
9043
+ /**
9044
+ * SlackDeliveryOptions requires a non-empty Channels when present.
9045
+ */
9046
+ export type V2SlackDeliveryOptions = {
9047
+ channels?: Array<V2Channel>;
9048
+ };
9049
+
9050
+ /**
9051
+ * ThresholdSpec is one condition block; Firing is its only arm today.
9052
+ */
9053
+ export type V2ThresholdSpec = {
9054
+ firing?: V2FiringThreshold;
9055
+ };
9056
+
8505
9057
  export type V2UpdateSilenceRequest = {
8506
9058
  comment?: string;
8507
9059
  /**
@@ -8549,6 +9101,7 @@ export type ValueItem = {
8549
9101
  };
8550
9102
 
8551
9103
  export type ValueMapping = {
9104
+ evidence?: MappingEvidence;
8552
9105
  /**
8553
9106
  * GroundcoverKey is derived from SourceKey and the applicable key mapping.
8554
9107
  * It is returned for display but is never applied as a separate key-mapping rule.
@@ -8563,6 +9116,10 @@ export type ValueMapping = {
8563
9116
  * It is not supported for logs, traces, or events.
8564
9117
  */
8565
9118
  metric_pattern?: string;
9119
+ /**
9120
+ * Origin is server-owned normalization provenance.
9121
+ */
9122
+ readonly origin?: string;
8566
9123
  /**
8567
9124
  * SourceKey is the exact Datadog key whose value should be mapped.
8568
9125
  */
@@ -9126,7 +9683,7 @@ export type MappingConfigWritable = {
9126
9683
  metric_name_char_replace?: {
9127
9684
  [key: string]: string;
9128
9685
  };
9129
- value_mappings?: Array<ValueMapping>;
9686
+ value_mappings?: Array<ValueMappingWritable>;
9130
9687
  };
9131
9688
 
9132
9689
  export type MappingResponseWritable = {
@@ -9207,6 +9764,32 @@ export type UpdateMappingsRequestWritable = {
9207
9764
  version: number;
9208
9765
  };
9209
9766
 
9767
+ export type ValueMappingWritable = {
9768
+ evidence?: MappingEvidence;
9769
+ /**
9770
+ * GroundcoverKey is derived from SourceKey and the applicable key mapping.
9771
+ * It is returned for display but is never applied as a separate key-mapping rule.
9772
+ */
9773
+ groundcover_key?: string;
9774
+ /**
9775
+ * GroundcoverValue is the replacement value in the converted query.
9776
+ */
9777
+ groundcover_value: string;
9778
+ /**
9779
+ * MetricPattern optionally scopes this mapping to groundcover metric names (not source metric names).
9780
+ * It is not supported for logs, traces, or events.
9781
+ */
9782
+ metric_pattern?: string;
9783
+ /**
9784
+ * SourceKey is the exact Datadog key whose value should be mapped.
9785
+ */
9786
+ source_key: string;
9787
+ /**
9788
+ * SourceValue is the exact Datadog value to replace.
9789
+ */
9790
+ source_value: string;
9791
+ };
9792
+
9210
9793
  export type AgentSkillRequest2 = AgentSkillRequest;
9211
9794
 
9212
9795
  export type CreateUpdateLogsPipelineConfigRequest2 = CreateUpdateLogsPipelineConfigRequest;
@@ -12177,6 +12760,71 @@ export type UpdateMetricsPipelineConfigResponses = {
12177
12760
 
12178
12761
  export type UpdateMetricsPipelineConfigResponse = UpdateMetricsPipelineConfigResponses[keyof UpdateMetricsPipelineConfigResponses];
12179
12762
 
12763
+ export type GetProfilingFlamegraphData = {
12764
+ body?: never;
12765
+ path?: never;
12766
+ query: {
12767
+ /**
12768
+ * Start time of the request range
12769
+ */
12770
+ start: string;
12771
+ /**
12772
+ * End time of the request range
12773
+ */
12774
+ end: string;
12775
+ /**
12776
+ * GCQL filter expression pinning workload, profile_type, and sample_type.
12777
+ */
12778
+ query: string;
12779
+ /**
12780
+ * Maximum distinct stacks. Defaults to 6000 and is capped at 50000.
12781
+ */
12782
+ limit?: number;
12783
+ };
12784
+ url: '/api/profiling/flamegraph';
12785
+ };
12786
+
12787
+ export type GetProfilingFlamegraphErrors = {
12788
+ /**
12789
+ * ErrorResponse defines a common error response structure.
12790
+ */
12791
+ 400: {
12792
+ message?: string;
12793
+ };
12794
+ /**
12795
+ * ErrorResponse defines a common error response structure.
12796
+ */
12797
+ 404: {
12798
+ message?: string;
12799
+ };
12800
+ /**
12801
+ * ErrorResponse defines a common error response structure.
12802
+ */
12803
+ 422: {
12804
+ message?: string;
12805
+ };
12806
+ /**
12807
+ * ErrorResponse defines a common error response structure.
12808
+ */
12809
+ 500: {
12810
+ message?: string;
12811
+ };
12812
+ /**
12813
+ * ErrorResponse defines a common error response structure.
12814
+ */
12815
+ 504: {
12816
+ message?: string;
12817
+ };
12818
+ };
12819
+
12820
+ export type GetProfilingFlamegraphError = GetProfilingFlamegraphErrors[keyof GetProfilingFlamegraphErrors];
12821
+
12822
+ export type GetProfilingFlamegraphResponses = {
12823
+ 200: ProfilingFlamegraphResponse;
12824
+ };
12825
+
12826
+ export type GetProfilingFlamegraphResponse = GetProfilingFlamegraphResponses[keyof GetProfilingFlamegraphResponses];
12827
+
12180
12828
  export type DeleteApiKeyData = {
12181
12829
  body?: never;
12182
12830
  path: {
@@ -13577,3 +14225,36 @@ export type SearchTracesError = SearchTracesErrors[keyof SearchTracesErrors];
13577
14225
  export type SearchTracesResponses = {
13578
14226
  200: unknown;
13579
14227
  };
14228
+
14229
+ export type ExportMonitorsV2Data = {
14230
+ body: ExportMonitorsV2Request;
14231
+ path?: never;
14232
+ query?: never;
14233
+ url: '/api/v2/monitors/export';
14234
+ };
14235
+
14236
+ export type ExportMonitorsV2Errors = {
14237
+ /**
14238
+ * ErrorResponse defines a common error response structure.
14239
+ */
14240
+ 400: {
14241
+ message?: string;
14242
+ };
14243
+ /**
14244
+ * ErrorResponse defines a common error response structure.
14245
+ */
14246
+ 500: {
14247
+ message?: string;
14248
+ };
14249
+ };
14250
+
14251
+ export type ExportMonitorsV2Error = ExportMonitorsV2Errors[keyof ExportMonitorsV2Errors];
14252
+
14253
+ export type ExportMonitorsV2Responses = {
14254
+ /**
14255
+ * ExportMonitorsV2ResponseWrapper is the HCL document, served as text/plain.
14256
+ */
14257
+ 200: TerraformDocument;
14258
+ };
14259
+
14260
+ export type ExportMonitorsV2Response = ExportMonitorsV2Responses[keyof ExportMonitorsV2Responses];